View Source Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0-11-0-2023-04-27

0.11.0 (2023-04-27)

  • HTTP client behaviour rewrite, adding handle_response callback
  • introduce a response parser behaviour and implementation for parsing JSON response
  • provide support for using Finch HTTP client
  • refactoring in accordance with SOLID
  • add integration tests and Github action workflow for all 3 supported HTTP clients: httpc, HTTPoison, Finch
  • other: use Hammox/Mox in unit tests, credo linter

0-10-5-2021-05-07

0.10.5 (2021-05-07)

  • support Solr metrics API querying
  • implement ping functions
  • use {url, headers, options} tuple to represent endpoints, mark URL module for deprecation
  • additional handler, collection fields for endpoints configuration

0-10-4-2020-11-07

0.10.4 (2020-11-07)

  • Default HTTP client behaviour implementation based on Erlang httpc
  • HTTPoison becomes optional dependency and a configurable HTTP client

0-10-3-2020-09-17

0.10.3 (2020-09-17)

  • 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

0-10-2-2020-08-06

0.10.2 (2020-08-06)

  • Extensive test refactoring

0-10-1-2020-07-17

0.10.1 (2020-07-17)

  • Simpler Http client behaviour with a single dispatch callback, update HTTPoison (reference) implementation
  • Hui.Query module deprecation
  • Refactoring and more HTTPoison dependency decoupling

0-10-0-2020-07-06

0.10.0 (2020-07-06)

  • 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

0-9-3-2020-05-08

0.9.3 (2020-05-08)

  • Remove various deprecated functions and data structs
  • new instantiation function for data structs

0-9-2-2019-11-29

0.9.2 (2019-11-29)

  • New JSON Encoder protocol implementation for Hui.Query.Update struct
  • Refactor encoding utiliy functions: prep for forthcoming support of JSON request/facet APIs

0-9-1-2019-11-19

0.9.1 (2019-11-19)

  • 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

0-9-0-2019-11-06

0.9.0 (2019-11-06)

0-8-3-0-8-4-2019-10-03

0.8.3, 0.8.4 (2019-10-03)

  • update dependencies: newer versions of bypass, httpoison, cowboy

0-8-2-2018-10-09

0.8.2 (2018-10-09)

  • update/3, update!/3 functions for adding and updating Solr docs
  • delete/3, delete!/3, delete_by_query/3, delete_by_query!/3 functions for deleting Solr docs
  • commit/2, commit!/2 functions for committing Solr docs to index

0-8-1-2018-10-08

0.8.1 (2018-10-08)

  • Documentation, README and doctests for Solr updating via Hui.U struct

0-8-0-2018-10-06

0.8.0 (2018-10-06)

  • Solr updating via struct: Request.update/3 now accepts a Hui.U struct for adding, deleting and committing documents, as well as optimising indexes

0-7-0-2018-10-03

0.7.0 (2018-10-03)

  • Enable Solr updating with binary data (JSON, XML update docs) via Request.update/3 function

0-6-3-2018-09-28

0.6.3 (2018-09-28)

  • 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)

0-6-2-2018-09-26

0.6.2 (2018-09-26)

  • 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

0-6-1-2018-09-24

0.6.1 (2018-09-24)

  • 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

0-6-0-2018-09-21

0.6.0 (2018-09-21)

  • Support SolrCloud request parameters such as 'collection', 'shards', 'shards.tolerant' in Hui.Q and distributed search

0-5-7-2018-09-21

0.5.7 (2018-09-21)

  • 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

0-5-6-2018-09-20

0.5.6 (2018-09-20)

  • Results highlighting (snippets) query via Hui.H struct
  • Unified, Original, Fast Vector results highlighting (snippets) via Hui.H1/H2/H3 structs

0-5-5-2018-09-20

0.5.5 (2018-09-20)

  • 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

0-5-4-2018-09-16

0.5.4 (2018-09-16)

  • Maximum Disjunction (DisMax) query via Hui.Q struct

0-5-3-2018-09-14

0.5.3 (2018-09-14)

  • Support JSON and XML response writer parameters in Hui.Q struct

0-5-2-2018-09-13

0.5.2 (2018-09-13)

  • New q/2, search/3 features for structured querying and faceting - Solr standard parser
  • search/2, q/1 accepts query struct (Hui.Q) parameters
  • Search.search/2 works with query and faceting structs (Hui.Q, Hui.F) parameters

0-5-1-2018-09-12

0.5.1 (2018-09-12)

  • 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.

0-5-0-2018-09-11

0.5.0 (2018-09-11)

  • Introduce struct modules for standard query and faceting parameters

0-4-2-2018-09-06

0.4.2 (2018-09-06)

  • Enable HTTP headers and options per endpoint configuration

0-4-1-2018-09-04

0.4.1 (2018-09-04)

  • Decode and return Solr JSON response as Map

0-4-0-2018-09-03

0.4.0 (2018-09-03)

  • Support HTTP headers and options specification
  • Remove Hui.Search.search/1 (cf. search/2)
  • q/1 shortcut for search(:default, query)

0-3-0-2018-09-01

0.3.0 (2018-09-01)

  • Multiple Solr endpoints configuration and searching
  • Apache 2 license

0-2-0-2018-08-31

0.2.0 (2018-08-31)

  • First release.
  • Solr search capability