RTF
RTF

Reputation: 6514

Is it possible to query multiple AWS Cloudsearch fields for the same value without repeating?

Using AWS Cloudsearch, I need to query 2 separate fields for the same value using a structured (compound) query e.g.

(and (or name:'john smith') (or curr_addr:'123 someplace' other_addr:'123 someplace'))

This query works, but I'm wondering if it's necessary to repeat the value for each field that I want to search against. Is there some way to specify the value only once e.g. curr_addr+other_addr:'123 someplace'

Upvotes: 0

Views: 1209

Answers (1)

dmbaughman
dmbaughman

Reputation: 608

That is the correct way to structure your compound query. From the AWS documentation, you'll see that they structure their example query the same way:

(and title:'star' (or actors:'Harrison Ford' actors:'William Shatner')(not actors:'Zachary Quinto'))

From Constructing Compound Queries

You may be able to get around this by listing the more repetitive fields in the query options (q.options), and then specify the field for the rest of the fields. The fields list is sort of a fallback for when you don't specify which field you are searching in a compound query. So if you list the address fields there, and then only specify the name field in your query, you may get close to the behavior you're looking for.

Query options

q.options={fields: ['curr_addr','other_addr']}

Query

(and (or name:'john smith') (or '123 someplace'))

But this approach would only work for one set of repetitive fields, so it's not a silver bullet by any means.

From Search API Reference (see q.options => fields)

Upvotes: 1

Related Questions