Hi Dan,

It worked ! Btw one more questions. Now the result returned me the same
scores for all :

1)"_score": 1.6931472,
                "_source": {
                    "DISPLAY_NAME": "Happy Tears",

2) "_score": 1.6931472,
                "_source": {
                    "DISPLAY_NAME": "Happy Happy Sangeethalu",

3)"_score": 1.6931472,
                "_source": {
                    "DISPLAY_NAME": "Happy",

Anyway to manipulate the 3) to appear first ?



*The query : *

{
"explain" : true,
    "query" : {
     "multi_match": {
      "query": "happy",
      "fields": [ "DISPLAY_NAME.AUTOCOMPLETE" ]
     }
    },
    "sort" : [{
      "_score" : { "order" : "desc"},
      "DISPLAY_NAME.NAME" : { "order" : "asc" }}]
}



Thanks.


On Mon, Apr 28, 2014 at 9:43 PM, Dan Tuffery <[email protected]> wrote:

> Change your mapping to:
>
>  DISPLAY_NAME": {
>       "type": "multi_field",
>        "fields": {
>              "AUTOCOMPLETE": {
>                    "type": "string",
>                     "index_analyzer":
> "edge_ngram_keyword_lowercase_analyzer",
>                      "include_in_all": false
>              },
>             "NAME": {
>                 "type": "string",
>                  "analyzer": "standard",
>                   "include_in_all": false
>              }
>     }
> }
>
> the DISPLAY_NAME term will be indexed using
> 'edge_ngram_keyword_lowercase_analyzer'. When you search on DISPLAY_NAME
>
> On Monday, April 28, 2014 2:31:24 PM UTC+1, cyrilforce wrote:
>
>> Hi Dan,
>>
>> Not sure whether i have same understanding "*edge n-gram filter at
>> search time*" refer to apply edge n-gram filter in the query ? If this
>> is the case i think i didn't apply any analyzer in the query :
>>
>> *Here my query : *
>>
>> {
>>     "query" : {
>>      "multi_match": {
>>       "query": "happy",
>>       "fields": [ "DISPLAY_NAME.AUTOCOMPLETE" ]
>>      }
>>     },
>>     "sort" : [{
>>       "_score" : { "order" : "desc"},
>>       "DISPLAY_NAME.NAME" : { "order" : "asc" }}]
>> }
>>
>>
>>
>> *The result : *
>> https://gist.github.com/cheehoo/11371837
>>
>> As you notice in the result it returned :
>>
>> Happenings
>> Happier?
>>
>> which aren't part of what i searched for.
>>
>>
>> *The mapping : *
>> https://gist.github.com/cheehoo/11371897
>>
>>
>> *The index : *
>> {
>>     "jdbc_dev": {
>>         "settings": {
>>             "index.number_of_shards": "5",
>>             "index.number_of_replicas": "1",
>>             "index.version.created": "900299",
>>             "index.analysis.filter.my_edge_ngram_filter.type":
>> "edgeNGram",
>>             
>> "index.analysis.analyzer.edge_ngram_keyword_lowercase_analyzer.filter.1":
>> "lowercase",
>>             
>> "index.analysis.analyzer.edge_ngram_keyword_lowercase_analyzer.filter.0":
>> "my_edge_ngram_filter",
>>             
>> "index.analysis.analyzer.edge_ngram_keyword_lowercase_analyzer.tokenizer":
>> "keyword",
>>             "index.analysis.filter.my_edge_ngram_filter.min_gram": "2",
>>             "index.analysis.filter.my_edge_ngram_filter.max_gram": "30"
>>         }
>>     }
>> }
>>
>>
>>
>>
>> After that with Adrien suggestion i tried create the analyzer
>>
>>  "analysis" : {
>> "analyzer" : {
>> "keyword_lowercase_analyzer" : {
>>  "tokenizer" : "keyword",
>> "filter" : ["lowercase"]
>> }
>>  }
>>  }
>>
>> and recreate the mapping with :
>>
>>  "DISPLAY_NAME": {
>>
>>                 "type": "string",
>>                 "search_analyzer" : "keyword_lowercase_analyzer"
>>
>>    }
>>
>>
>> however with this configuration it wasn't able to search via "hap" to
>> return the following result :
>>
>>
>> *1)Happy*
>> *2)Happy birthday*
>> *3)Happy valentine*
>>
>>
>> Thanks
>>
>>
>>
>>
>>
>> On Mon, Apr 28, 2014 at 8:17 PM, Dan Tuffery <[email protected]> wrote:
>>
>>> 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]> 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/to
>>>>> pic/elasticsearch/fhsCgFBF76E/unsubscribe.
>>>>>  To unsubscribe from this group and all its topics, send an email to
>>>>> [email protected].
>>>>>
>>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>>> msgid/elasticsearch/7ad16d4e-aed3-474e-893d-92cc788003b0%40goo
>>>>> glegroups.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 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].
>>> To view this discussion on the web visit https://groups.google.com/d/
>>> msgid/elasticsearch/f7b7df20-4136-4cb6-9dcc-318502ac05f9%
>>> 40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/f7b7df20-4136-4cb6-9dcc-318502ac05f9%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> Regards,
>>
>> Chee Hoo
>>
>  --
> 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].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/f296c0d1-0248-4d62-aba4-057373596343%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/f296c0d1-0248-4d62-aba4-057373596343%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Regards,

Chee Hoo

-- 
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/CAGS0%2Bg-Hc1PSLqQpd%2Bs2d9hzQ0b2MREUtXWoFh_-%3DqjtqNYmOA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to