As Adrien said don't apply the edge n-gram filter at search time. When you 
tried it what does you mapping look like, because "hap" should return a 
result.

Dan

On Monday, April 28, 2014 12:41:38 PM UTC+1, cyrilforce wrote:
>
> Hi dan
>
> I tried this before however it returns me some irrelevant result as well :
> https://gist.github.com/cheehoo/11365794
>
> How I could get only the relevant result with the sorting via edge ngram ? 
> Thanks
> On Apr 28, 2014 7:36 PM, "Dan Tuffery" <[email protected] <javascript:>> 
> wrote:
>
>> To return the query results in the order you want, execute the sort on a 
>> not_analyzed version of the term, i.e
>>
>> "DISPLAY_NAME": {
>>     "type": "string",
>>     "fields": {
>>          "NAME": {
>>               "type": "string",
>>              "analyzer": "edge_ngram_keyword_lowercase_analyzer"
>>         },
>>         "untouched":{
>>              "type": "string",
>>                   "analyzer":"not_analyzed"
>>               }
>>         }
>> }
>>
>> Reindex the data. Now in your query you can sort on the 'untouched' field:
>>
>> {
>>     "from" : "0",
>>     "size" : "20",
>>     "explain" : true,
>>    
>>     "query" : {
>>     "multi_match": {
>>          "query": "happy",
>>           "fields": [ "DISPLAY_NAME.name"]
>>      }
>>     },
>>     "sort" : [{ 
>>       "DISPLAY_NAME.untouched" : { "order" : "desc"}}] 
>> }
>>
>> which will return 
>>
>> *1)Happy*
>> *2)Happy birthday*
>> *3)Happy valentine*
>>
>> Dan
>>
>>
>> On Monday, April 28, 2014 9:50:44 AM UTC+1, cyrilforce wrote:
>>>
>>> Hi All, 
>>>
>>> I am trying to use *edge-ngram filter *to achieve auto-completion 
>>> behaviour. However when i run the following query : 
>>>
>>> {
>>>     "from" : "0",
>>>     "size" : "20",
>>>     "explain" : true,
>>>    
>>>     "query" : {
>>>     *"multi_match": {*
>>> *      "query": "happy",*
>>> *      "fields": [ "DISPLAY_NAME.NAME <http://DISPLAY_NAME.NAME>"]*
>>> *     }*
>>>     },
>>>     "sort" : [{ 
>>>       "_score" : { "order" : "desc"}}] 
>>> }
>>>
>>> It returns me documents  : 
>>>
>>> https://gist.github.com/cheehoo/11365794
>>>
>>>
>>> May i know how can i achieve the behaviour when i search "*happy*" then 
>>> is should return me following result instead : 
>>>
>>> *1)Happy*
>>> *2)Happy birthday*
>>> *3)Happy valentine*
>>>
>>>
>>> The analzyer configure : 
>>>
>>> "analysis" : {
>>>  "analyzer" : {
>>> "edge_ngram_keyword_lowercase_analyzer" : {
>>> "tokenizer" : "keyword",
>>>  "filter" : ["my_edge_ngram_filter","lowercase"]
>>> }
>>> },
>>>  "filter" : {
>>>                     "my_edge_ngram_filter" : {
>>>                         "type" : "edgeNGram",
>>>                         "min_gram" : "2",
>>>                         "max_gram" : "30"
>>>                         
>>>                     }
>>>                 }
>>>  }
>>>
>>>
>>> The mapping :
>>> https://gist.github.com/cheehoo/11365917
>>>
>>> Thanks.
>>>
>>>
>>>
>>>
>>>
>>>  -- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "elasticsearch" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/elasticsearch/fhsCgFBF76E/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elasticsearch/7ad16d4e-aed3-474e-893d-92cc788003b0%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/7ad16d4e-aed3-474e-893d-92cc788003b0%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/f7b7df20-4136-4cb6-9dcc-318502ac05f9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to