But the query is this...

name:"exampleof bug"

This should find an exact match in the field name. That exact match token 
exists.

The syntax for lucene under "Fields" section shows a double quote is the 
correct character for 
this. http://lucene.apache.org/core/2_9_4/queryparsersyntax.html The term 
query is found by query_string when using single quotes, but that doesn't 
match lucene query documentation.

Thanks!

On Thursday, August 21, 2014 9:52:16 AM UTC-7, Ivan Brusic wrote:
>
> I suspect the issue is the way the query parser works. The query phrase 
> "exampleof bug" will be parsed into a query for the tokens "exampleof" and 
> "bug" that are adjacent to each other. The issue is that you do not have 
> two such tokens, instead you have a token with the value "exampleof bug", 
> which is a single token with a space in it. According to Lucene, they are 
> not the same thing. You would need to create an analyzer that would create 
> the tokens "exampleof" and "bug".
>
> Cheers,
>
> Ivan
>
>
> On Thu, Aug 21, 2014 at 8:47 AM, ben <[email protected] <javascript:>> 
> wrote:
>
>> Also meant to include this in the script.
>>
>> echo "query_string query using singe quote which does not match lucene 
>> query documentation"
>> curl -XPOST "$url/$defaultIndex/example/_search?pretty=true" -d '
>> {
>>   "query": {
>>     "query_string": {
>>       "query": "name:''exampleof bug''"
>>     }
>>   }
>> }
>> '
>>
>> On Thursday, August 21, 2014 8:39:14 AM UTC-7, ben wrote:
>>>
>>> I have attached a short bash script to recreate the situation. I have a 
>>> fairly simple custom analyzer that I want to break on camel case so 
>>> lowercase is last. Using the _analyze endpoint I can see the token I am 
>>> searching for is generated by the analyzer, however searching for it with 
>>> query_string yields a different result that a term query. I put comments in 
>>> the script to explain in more detail.
>>>
>>> Thanks for any help!
>>>
>>> #!/bin/sh
>>>
>>> url="http://localhost:9200";
>>> defaultIndex="example"
>>>
>>> echo "Start over...this will fail the first time the script is run since 
>>> the index will not exist"
>>> curl -XDELETE "$url/$defaultIndex?refresh=true"
>>>
>>> echo "Create index with custom analyzer"
>>> curl -XPUT "$url/$defaultIndex" -d '{
>>>  "index": {
>>>             "analysis": {
>>> "filter": {
>>>  "my_worddelim": {
>>> "type": "word_delimiter",
>>> "split_on_case_change": true,
>>>  "preserve_original": true
>>> }
>>> },
>>>                     "analyzer": {
>>>  "my_analyzer": {
>>> "type":         "custom",
>>> "char_filter":  [ "html_strip" ],
>>>  "tokenizer":    "keyword",
>>> "filter":       [ "stop", "my_worddelim", "lowercase" ]
>>>  }
>>>                     }
>>>             }
>>>     }
>>> }'
>>>
>>> echo
>>>
>>> curl -XPUT "$url/$defaultIndex/example/_mapping" -d '{
>>>     "example" : {
>>>         "properties" : {
>>>             "name": {
>>>                 "type" : "multi_field",
>>>                 "path": "just_name",
>>>                 "fields" : {
>>>                     "name": { "type": "string", "analyzer": 
>>> "my_analyzer" },
>>>     "sample" : {"type" : "string", "index" : "not_analyzed" },
>>>                     "sample_name" : {"type" : "string", "analyzer": 
>>> "my_analyzer" }
>>>                 }
>>>             }
>>> }
>>>     }
>>> }'
>>>
>>> echo "Shows the lowercase token exampleofbug is generated"
>>> curl -XGET "$url/$defaultIndex/_analyze?analyzer=my_analyzer&pretty=true" 
>>> -d 'ExampleOf Bug'
>>>
>>> echo "Post the document (haven't tried with non-bulk request)"
>>> curl -XPOST "$url/$defaultIndex/example/_bulk?refresh=true" -d '
>>> { "index" :  {"_index":"example","_type":"example","_id":"2169167","_
>>> version_type":"internal","_timestamp":0} }
>>> {"name":"ExampleOf Bug"}
>>> '
>>>
>>> echo
>>>
>>> echo "query_string query is unable to find token in the name field even 
>>> though the path is just_name. i also tried escaping space per documentation 
>>> and it fails to parse"
>>> curl -XPOST "$url/$defaultIndex/example/_search?pretty=true" -d '
>>> {
>>>   "query": {
>>>     "query_string": {
>>>       "query": "name:\"exampleof bug\""
>>>     }
>>>   }
>>> }
>>> '
>>>
>>> echo
>>>
>>> echo "Can successfully find token in name field that I was unable to 
>>> find with query_string"
>>> curl -XPOST "$url/$defaultIndex/example/_search?pretty=true" -d '
>>> {
>>>   "query": {
>>>     "term": {
>>>       "name": "exampleof bug"
>>>     }
>>>   }
>>> }
>>> '
>>>
>>>
>>>  -- 
>> 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/fb920c7a-dce5-4272-8b80-1f148e96f8ae%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/elasticsearch/fb920c7a-dce5-4272-8b80-1f148e96f8ae%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/f167607d-32da-497e-ba09-bb77cfd0784e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to