Search date in query string query

ElasticSearch "2.4.4"
Java "1.8.0_151"

Hi there,

I am using query string query, and I need to have matching:

Data: "text" : "8 Derailed 2017-07-17 user user Dermot Mac Ateer 2017-07-03 2017-07-11"
User Input: 2017-07-17
Elastic query: { "query":{ "query_string":{ "query":"text:2017/17/07" } } }

Expected result: match all fields which have 2017-07-17

Expected result: match all data and not only those who have exact 2017-07-17 inside

thanks in advance.
regards Hayk Hovhannisyan

It depends of the analyzer you are using.

Try the _analyze endpoint to understand what is happening.

Based on this example, it appears you would need to do a regex search, which would KILL performance depending on the number of records.

The regular expression would look something like:

2017.07.17

If you could parse out the text, and add a date field, this would make searching a lot easier.

Hi David,
by default as far as I understand used standard analyzer.
I also in my configurations have already implemented bigrams analyzer.

Hi Scot,
My text filed type is String

This works: "query" : "text:\"2017-06-11\""
This not works 2017.07.17 - even if my field type is Date
"reason": "Invalid format: "2017.06.11" is malformed at ".06.11""

My worries that this is not best solution, because for same field I need to have complicated search, in order to search:

  • via free text search
  • via dates
  • via numbers
  • via wildcards
  • via partial text (with spaces)
  • via all this words
  • via exact matching

and so on.

Before we are using for some fields Regex search, for others Term or Match searches based on BA.

regards Hayk Hovhannisyan

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.