Hui v0.4.1 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

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.

Link to this function search(url, query) View Source
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.