Hui v0.4.0 Hui View Source
Hui 辉 (“shine” in Chinese) is an Elixir client and library for Solr enterprise search platform.
Usage
Link to this section Summary
Functions
Issue a search query to the default Solr endpoint
Issue a search query to a specific Solr endpoint
Link to this section Types
Link to this section Functions
q(query()) :: {:ok, HTTPoison.Response.t()} | {:error, HTTPoison.Error.t()} | {:error, String.t()}
Issue a search query to the default Solr endpoint.
The query can either be a search string or a keyword list of Solr parameters.
This function is a shortcut for search/2
with :default
as URL key.
Example
Hui.q("scott") # keyword search
Hui.q(q: "loch", fq: ["type:illustration", "format:image/jpeg"])
Hui.q(q: "loch", rows: 5, facet: true, "facet.field": ["year", "subject"])
See Hui.URL.default_url!/0
and Hui.URL.encode_query/1
for more details on Solr parameter keyword list.
search(url(), Hui.Search.solr_params()) :: {:ok, HTTPoison.Response.t()} | {:error, HTTPoison.Error.t()} | {:error, String.t()}
Issue a search query to a specific Solr endpoint.
The endpoint can either be a string URL or Hui.URL.t/0
struct which defines
a specific URL and request handler. A key referring to a configured endpoint
can also be used.
The query is a keyword list of Solr parameters.
Example
Hui.search("http://localhost:8983/solr/collection", q: "loch")
url = :library
Hui.search(url, q: "edinburgh", rows: 10)
url = %Hui.URL{url: "http://localhost:8983/solr/collection", handler: "suggest"}
Hui.search(url, suggest: true, "suggest.dictionary": "mySuggester", "suggest.q": "el")
See Hui.URL.configured_url/1
amd Hui.URL.encode_query/1
for more details on Solr parameter keyword list.
Hui.URL.t/0
struct also enables HTTP headers and HTTPoison options to be specified
in keyword lists. HTTPoison options provide further controls for a request, e.g. timeout
, recv_timeout
,
max_redirect
, params
etc.
# setting up a header and a 10s receiving connection timeout
url = %Hui.URL{url: "..", headers: [{"accept", "application/json"}], options: [recv_timeout: 10000]}
Hui.search(url, q: "solr rocks")
See HTTPoison.request/5
for more details on HTTPoison options.