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/
>>> 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/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 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 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%2Bg95SAL--gSTfUm6gJRYq2pEeDgQiVqH%3DcoV%2BffLSn56tg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.