Hi all,
I have indexed two documents
- {"title": "+" }
- {"title": "a + b" }
By using query string query , I have search queries for the above two documents in different manner.
Also, I have not changed any analyzers. Default analyzer has been used.
- {
"query": {
"query_string" : {
"default_field" : "title",
"query" : "+"
}
}
}
the above query gives a parsing exception which is legit.
2.{
"query": {
"query_string" : {
"default_field" : "title",
"query" : "\+"
}
}
}
this query outputs:
"hits": [
{
"_index": "my_index1",
"_type": "my_item",
"_id": "005",
"_score": 0.9808292,
"_source": {
"title": "+"
}
}
]
the above output also seems legit.
- {
"query": {
"query_string" : {
"default_field" : "title",
"query" : " + "
}
}
}
in the above query space exists before and after "+" character , this outputs:
"hits": [
{
"_index": "my_index1",
"_type": "my_item",
"_id": "005",
"_score": 1.2039728,
"_source": {
"title": "+"
}
}
]
My issue is why parsing exception is not thrown here and why escaping "+" is not necessary here"? If Elasticsearch is finding a way to parse "+"in some manner, why is "a + b" not in the hits?
4.{
"query": {
"query_string" : {
"default_field" : "title",
"query" : "a + b"
}
}
}
this query outputs:
"hits": [
{
"_index": "my_index1",
"_type": "my_item",
"_id": "005",
"_score": 0.9808292,
"_source": {
"title": "+"
}
}
]
I don't understand how my query is parsing "+" and not throwing an exception. If Elasticsearch is finding a way to parse "+"in some manner, why is "a + b" not in the hits?
- {
"query": {
"query_string" : {
"default_field" : "title",
"query" : "a \+ b"
}
}
}
output to this query :
"max_score": 0.6931472,
"hits": [
{
"_index": "my_index1",
"_type": "my_item",
"_id": "007",
"_score": 0.6931472,
"_source": {
"title": "a + b"
}
}
]
if the query is using default analyzers (since I have not used any analyzers) how is "+" not in the hits here?