Skip to content
Port of RSolr to Elixir
Elixir
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Added some useful doc examples Nov 2, 2016
lib Fixed mlt docs not being flattened Nov 14, 2016
test build the solr query url May 11, 2016
.gitignore remove the doc folder from source control May 8, 2016
LICENSE Initial commit May 7, 2016
README.md beautify elixir code in readme (#4) Jun 9, 2017
mix.exs make dialyxir green May 23, 2016
mix.lock Cleanup IO.inspect Nov 1, 2016

README.md

Exsolr

Port of RSolr to Elixir

Installation

  1. Add exsolr to your list of dependencies in mix.exs:
def deps do
  [{:exsolr, git: "http://github.com/dcarneiro/exsolr"}]
end
  1. Ensure exsolr is started before your application:

    def application do [applications: [:exsolr]] end

Configuration

The default behaviour is to configure using the config file:

In config/config.exs, add:

config :exsolr,
  hostname: "localhost",
  port: 8983,
  core: "elixir_test"

Querying

Use #get to perform a query into Solr. All parameters are optional

response = Exsolr.get(q: "roses", fq: ["blue", "violet"])
Enum.map(response["docs"], fn(doc) -> doc["id"] end)

The following query fields will have default values if they aren't specified

q:     "*:*"
wt:    "json"
start: 0
rows:  10

Indexing documents into Solr

Single document via #add

  Exsolr.add(%{id: 1, price: 1.00})

Multiple documents via #add

  [%{id: 1, price: 1.00}, %{id: 2, price: 10.50}]
  |> Exsolr.add

Force a commit into Solr

Exsolr.commit

Deleting

Delete by id

Exsolr.delete_by_id("1")

Delete all the documents from the core

Exsolr.delete_all
You can’t perform that action at this time.