ExAws.CloudSearch

Build Status

An ex_aws service module for AWS CloudSearch.

Installation

The package can be installed by adding ex_aws_cloud_search to your list of dependencies in mix.exs along with :ex_aws_cloud_search and your preferred JSON codec and HTTP client.

If you are using the structured search syntax, you may wish to use csquery.

def deps do
  [
    {:ex_aws, "~> 2.0"},
    {:ex_aws_s3, "~> 1.0"},
    {:poison, "~> 3.0"},
    {:hackney, "~> 1.9"},
    {:csquery, "~> 1.0"} # Optional, but recommended.
  ]
end

Documentation can be found at HexDocs.pm.

Configuration

The request configuration for ExAws.CloudSearch is a little different than most other AWS services, in that it requires an additional configuration parameter to know what host to use for document management or searches. When configuring, add a search_domain configuration.

config :ex_aws,
  access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, {:aws_profile, "default", 30}],
  secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, {:aws_profile, "default", 30}],
  region: "us-west-2",
  search_domain: "exaws-search-test-d3adbeef65rvt"

The actual host will be chosen based on the search_domain provided. As with all ExAws requests, this may be provided a runtime:

"José"
|> ExAws.CloudSearch.search()
|> ExAws.request!(region: "us-west-2", search_domain: "exaws-search-test-d3adbeef65rvt")

CSQuery Integration

During search construction, if a CSQuery.Expression is provided as the query, ExAws.CloudSearch will also configure the query parser to be structured and it will use CSQuery.to_query/1 to produce the query string. (If CSQuery is not loaded, an error will be thrown.)

Planned Features

Community and Contributing

We welcome your contributions, as described in Contributing.md. Like all Kinetic Cafe open source projects, is under the Kinetic Cafe Open Source Code of Conduct.