Changelog
- Rewrite
Hui.Encode.encode
utility with body-recursive functions for better performance - Provide a new
encode_to_iodata/1
function and implementations in Hui.Encoder
protocol
- Extensive test refactoring
- Simpler Http client behaviour with a single
dispatch
callback, update HTTPoison (reference) implementation - Hui.Query module deprecation
- Refactoring and more HTTPoison dependency decoupling
- New HTTP client architecture: introduce a behaviour with a HTTPoison implementation
- Begin HTTPoison dependency decoupling
- Removal of all bang (!) functions towards a simpler core library
- Remove various deprecated functions and data structs
new
instantiation function for data structs
- New JSON Encoder protocol implementation for
Hui.Query.Update
struct - Refactor encoding utiliy functions: prep for forthcoming support of JSON request/facet APIs
- New
Hui.Query.Update
struct for indexing documents Hui.Encoder
encodes update query in JSON format- Hui.Query.get/2 and Hui.Query.post/2 functions (accept built-in data structs) for HTTP requests
- New query structs:
Hui.Query.Standard
, Hui.Query.DisMax
, Hui.Query.Common
, Faceting: Hui.Query.Facet
, Hui.Query.FacetRange
, Hui.Query.FacetInterval
, Hui.Query.Highlight
, Hui.Query.HighlighterFastVector
, Hui.Query.HighlighterOriginal
, Hui.Query.HighlighterUnified
, Hui.Query.SpellCheck
, Hui.Query.Suggest
Hui.Query.MoreLikeThis
Hui.Encoder
protocol and implementation for encoding the new query structs
0.8.3, 0.8.4 (2019-10-03)
- update dependencies: newer versions of bypass, httpoison, cowboy
update/3
, update!/3
functions for adding and updating Solr docsdelete/3
, delete!/3
, delete_by_query/3
, delete_by_query!/3
functions for deleting Solr docscommit/2
, commit!/2
functions for committing Solr docs to index
- Documentation, README and doctests for Solr updating via
Hui.U
struct
- Solr updating via struct:
Request.update/3
now accepts a Hui.U
struct for adding, deleting and committing documents, as well as optimising indexes
- Enable Solr updating with binary data (JSON, XML update docs) via
Request.update/3
function
- Convenience functions for search and suggester requests (
q/6
, search/7
, suggest/5
) - Bangified all main module functions (
q!/1
, search!/2
, spellcheck!/2
, spellcheck!/3
, suggest!/2
, mlt!/3
) - Deprecate the standard query + faceting functions (
q/2
, search/3
) as these are now provided through the more general-purpose functions (q/1
, search/2
)
- Introduce a "bang" feature via an additional boolean parameter in
Request.search/3
for implementing bangified functions later - Deprecate
Hui.Search
module which is replaced by Hui.Request
to provide update functions later - Refactor search tests with a helper function that tests
search/2
in both Hui
and Hui.Request
modules - Refactor and fix typespec issues with Dialyzir
- Code coverage metric via ExCoveralls and coveralls.io
- Provide
cursorMark
parameter for deep paging in Hui.Q
- Define and use a custom exception
Hui.Error
, instead of the mixed usage of HTTPoison and arbitrary error text responses
- Support SolrCloud request parameters such as 'collection', 'shards', 'shards.tolerant' in
Hui.Q
and distributed search
- Support autosuggest (suggester) query via
suggest/2
- Support spell checking query via
spellcheck/3
- Support MoreLikeThis query via
mlt/3
- Suggester query via
Hui.S
struct - Spell checking query via
Hui.Sp
struct - MoreLikeThis query via
Hui.M
struct
- Results highlighting (snippets) query via
Hui.H
struct - Unified, Original, Fast Vector results highlighting (snippets) via
Hui.H1/H2/H3
structs
q/1
, search/2
to generally accept a list of current and forthcoming Hui structs for more complex querying, e.g. DisMax- DisMax (Maximum Disjunction) and Extended DisMax (eDisMax) query now via a new
Hui.D
struct - Deprecate DisMax parameters from
Hui.Q
struct
- Maximum Disjunction (DisMax) query via
Hui.Q
struct
- Support JSON and XML response writer parameters in
Hui.Q
struct
- New
q/2
, search/3
features for structured querying and faceting - Solr standard parser search/2
, q/1
accepts query struct (Hui.Q) parametersSearch.search/2
works with query and faceting structs (Hui.Q
, Hui.F
) parameters
- URL encoder renders faceting structs to string according to Solr prefix syntax e.g. "field" ->
facet.field
- URL encoder for "per field" faceting (ranges, intervals) use cases, e.g. "gap" ->
f.[field].range.gap
- Consolidate
URL.encode_query/1
; deprecate Q.encode_query
- Improve succinctness of range and interval faceting struct: remove redundant words, e.g. "range.start", "range.end" -> "start", "end" etc.
- Introduce struct modules for standard query and faceting parameters
- Enable HTTP headers and options per endpoint configuration
- Decode and return Solr JSON response as Map
- Support HTTP headers and options specification
- Remove Hui.Search.search/1 (cf. search/2)
- q/1 shortcut for search(:default, query)
- Multiple Solr endpoints configuration and searching
- Apache 2 license
- First release.
- Solr search capability