I think I don't agree ... I'm using query_string because I want to give the users the ability to use AND, OR +, - etc., out of the box. I'm able to escape all other symbols except < and >, and I can use them as part of the field content, also as part of the query like any regular letter. I dont understand why there is no way to escape those 2 symbols only. How they are different compared to the others ???
Tihomir 12 август 2014, вторник, 11:57:21 UTC+3, Jörg Prante написа: > > This is not a problem of escape. > > Always use "match" query. Never use "query_string". > > Jörg > > > On Tue, Aug 12, 2014 at 10:50 AM, Tihomir Lichev <[email protected] > <javascript:>> wrote: > >> Does anyone have an idea hot to escape < and > in a query ??? >> >> 07 август 2014, четвъртък, 18:27:08 UTC+3, Tihomir Lichev написа: >> >>> Hello, >>> I recently discovered very interesting problem >>> >>> The analyzer is *whitespace:* >>> { >>> "mappings": { >>> "test": { >>> "properties": { >>> "title": { >>> "analyzer": "whitespace", >>> "type": "string" >>> }, >>> "description": { >>> "analyzer": "whitespace", >>> "type": "string" >>> } >>> } >>> } >>> } >>> } >>> >>> >>> I have 3 documents with the following content: >>> { >>> "id": 1, >>> "title" : "testing123", >>> "description" : "a description" >>> } >>> { >>> "id": 2, >>> "title" : "testing >end", >>> "description" : "another description" >>> } >>> { >>> "id": 3, >>> "title" : "testing <end", >>> "description" : "another description" >>> } >>> >>> >>> Then I did the following search queries: >>> { >>> "query": { >>> >>> "bool": { >>> "should": [ >>> { >>> "query_string": { >>> "query": ">end", >>> "fields": [ >>> "title" >>> ] >>> } >>> } >>> ] >>> } >>> } >>> } >>> >>> RESULT: 3 hits (all docs) - wrong >>> EXPLAIN description: "ConstantScore(title:{end TO *]), product of:" >>> >>> { >>> "query": { >>> >>> "bool": { >>> "should": [ >>> { >>> "query_string": { >>> "query": "<end", >>> "fields": [ >>> "title" >>> ] >>> } >>> } >>> ] >>> } >>> } >>> } >>> >>> RESULT: 3 hits (all docs) - wrong >>> EXPLAIN description: "ConstantScore(title:[* TO end}), product of:" >>> >>> { >>> "query": { >>> >>> "bool": { >>> "should": [ >>> { >>> "query_string": { >>> "query": "end", >>> "fields": [ >>> "title" >>> ] >>> } >>> } >>> ] >>> } >>> } >>> } >>> >>> RESULT: 0 hits (correct!) >>> >>> I tried to escape "<" and ">" in the query, but no success >>> >>> Search for < and > in the elasticsearch and lucene docs - also no luck. >>> Obvoiusly they are recognized as range operators, but I want to use them >>> also as normal text symbols. >>> Is there any way to escape them properly ? >>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "elasticsearch" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elasticsearch/9fee6a55-b3ff-4192-9329-4e5f6fead45e%40googlegroups.com >> >> <https://groups.google.com/d/msgid/elasticsearch/9fee6a55-b3ff-4192-9329-4e5f6fead45e%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/d6bb86ed-111b-4909-a918-e8ae797579da%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
