Using phrase query to search
We added some documents to the index that we created. Now, let's examine some ways to query our data. Elasticsearch provides many types of queries to query our indexed documents. Of all the ones available, the simple query string query is a great place to start. The main advantage of this query is that it will never throw an exception. Also, a simple query string query discards the invalid parts of the query.
It mostly covers what is expected from most of the search engines. It takes OR
of all the terms present in the query text, though we can change this behavior to AND
. Also, it recognizes all Boolean keywords in the query text and performs the search accordingly. For details, you can look through http://lucene.apache.org/core/2_9_4/queryparsersyntax.html.
To query an Elasticsearch index, we must create a JSON query. A simple JSON query is shown here:
{ "query": { "simple_query_string": { "query": "sms", "fields": [ "_all" ] } }
The screenshot of how a query is passed and the response is received in the head UI is shown as follows:
The explanation of the field's result is as follows:
took
: This is the time taken by Elasticsearch in milliseconds to perform the search on the index.hits
: This array contains the records of the first 10 documents that matched._id
: This is a unique ID that refers to that document._score
: This is a number that determines how closely the search parameter you provided matched this particular result._source
: When we give Elasticsearch a feed to document, it stores the original feed separately. On a document match, we receive this stored document as the_source
field.