You're right, it works by changing the analyzer.
Now evolving issues, I customize the analyzer
PUT hotels
{
"settings": {
"analysis": {
"analyzer": {
"labelstreet_analyzer": {
"type": "custom",
"tokenizer": "nGram_tokenizer",
"filter": [
"lowercase",
"elision",
"stopwords"
]
}},
"tokenizer": {
"nGram_tokenizer": {
"type": "nGram",
"min_gram": "2",
"max_gram": "4",
"token_chars": [
"letter",
"digit"
]
}
},
"filter": {
"elision": {
"type": "elision",
"article": [
"l",
"m",
"t",
"qu",
"n",
"s",
"j",
"d"
]
},
"stopwords": {
"type": "stop",
"stopwords": [
"_french_"
],
"ignore_case": true
}
}
}
},
"mappings": {
"hotel": {
"properties": {
"name": {
"type": "string",
"analyzer": "labelstreet_analyzer"
},
"city": {
"type": "string",
"analyzer": "labelstreet_analyzer"
},
"name_suggest": {
"type": "completion",
"analyzer": "labelstreet_analyzer"
}
}
}
}
}
PUT /hotels/hotel/1
{
"name": "Mercure Hotel Munich",
"city": "Munich",
"name_suggest": {
"input": [
"Mercure Hotel Munich",
"Mercure Munich"
]
}
}
PUT hotels/hotel/2
{
"name": "Hotel Monaco",
"city": "Munich",
"name_suggest": {
"input": [
"Monaco Munich",
"Hotel Monaco"
]
}
}
PUT /hotels/hotel/3
{
"name": "Courtyard by Marriot Munich City",
"city": "Munich",
"name_suggest": {
"input": [
"Courtyard by Marriot Munich City",
"Marriot Munich City"
]
}
}
If i check the analyser, I get the result I want. That is, if I type "mun",
the tokenizer gets me a right token
GET /hotels/_analyze?analyzer=labelstreet_analyzer&text=Munich
Yet when I execute this query, the result is null
POST /hotels/_suggest
{
"hotels" : {
"text" : "mun",
"completion" : {
"field" : "name_suggest"
}
}
}
Why the result with "mun" is not displayed ?
Thanks for your help
Franck
Le mardi 14 octobre 2014 14:21:18 UTC+2, Adrien Grand a écrit :
Completion fields use the simple
analyzer by default, which removes
numbers. If you try another analyzer that keeps numbers such as the
standard analyzer, this should work:
PUT /hotels
{
"mappings": {
"hotel" : {
"properties" : {
"name" : { "type" : "string" },
"city" : { "type" : "string" },
"name_suggest" : {
"type" : "completion",
"analyzer": "standard"
}
}
}
}
}
On Tue, Oct 14, 2014 at 2:03 PM, Franck B <f.belv...@gmail.com
<javascript:>> wrote:
Mapping is very basic. There are no analyzers.
Le mardi 14 octobre 2014 13:24:42 UTC+2, Adrien Grand a écrit :
You are probably using an analyzer that removes numbers?
On Mon, Oct 13, 2014 at 6:45 PM, Franck B f.belv...@gmail.com wrote:
Hi all,
I try to put an auto completion system based on ES.
This article Elasticsearch Platform — Find real-time answers at scale | Elastic helps
me a lot, but I don't understand a case:
PUT /hotels
{
"mappings": {
"hotel" : {
"properties" : {
"name_suggest" : {
"type" : "completion"
}
}
}
}
}
PUT /hotels/hotel/1
{
"name_suggest" : {
"input" : [
"21 Mercure Hotel Munich",
"24 Mercure Munich"
]
}
}
PUT hotels/hotel/2
{
"name_suggest" : {
"input" : [
"Monaco Munich",
"Hotel Monaco"
]
}
}
When i post :
POST /hotels/_suggest
{
"hotels" : {
"text" : "m",
"completion" : {
"field" : "name_suggest"
}
}
}
The result is 3 hotels : "21 Mercure Hotel Munich","24 Mercure
Munich", "Monaco Munich".
But when i post this request:
POST /hotels/_suggest
{
"hotels" : {
"text" : "2",
"completion" : {
"field" : "name_suggest"
}
}
}
There is no result ...
Any Idea ?
Franck
--
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 elasticsearc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/
msgid/elasticsearch/a8094645-39a5-4160-87d8-8a8bd1eca444%
40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/a8094645-39a5-4160-87d8-8a8bd1eca444%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.
--
Adrien Grand
--
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 elasticsearc...@googlegroups.com <javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/f3f2dfbe-ca89-4f30-afe7-f9a9fa8e44c3%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/f3f2dfbe-ca89-4f30-afe7-f9a9fa8e44c3%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.
--
Adrien Grand
--
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 elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/8e69449f-f2f4-425b-b49a-6feb0cfe4409%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.