An ex_aws service module for AWS CloudSearch.
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.
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")
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.)
- Search - 0.1.0
- Suggest - 0.2.0
- Document management (add, update, delete) - 0.2.0
- Configuration - 0.2.0
- Improved configuration hygiene by providing more helper structs and functions.
- Tests - 1.0.0
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.