I have a problem where the elastic search is providing autocomplete suggestion for value which I already remove in the index field. For example, previously I have field ARR:. TEST in talents.name field. I have updated the record and ARR:. TEST is no longer in talents.name. However, when I query _suggest,
{"complete" :{ "text" : "ARR:. TEST", "completion" : { "field" : "talents_suggest", "size" : 20 }}}
the record still appear as below result.
{
* "_shards": {
* "total": 5,
* "successful": 5,
* "failed": 0},
* "complete": [
* {
* "text": "ARR:. TEST",
* "offset": 0,
* "length": 17,
* "options": [
* {
* "text": "ARR.-TEST",
* "score": 3}
, * {
* "text": "ARR.: TEST",
* "score": 3}
, * {
* "text": "ARR: TEST",
* "score": 3}]}]
}
I tried query talents_suggest field directly, and there's result returned, but I can't see talents_suggest field in the json returned. How do I verify, that ARR.: TEST is still existing in talents_suggest or not ?
{
"query": {
"match": {
"talents_suggest": {
"query": "ARR.: TEST"
}
}
}
}
I am using elastic search v1.4.
The mapping I used is
"talents": {
"type" : "nested",
"properties": {
"type": {
"type": "string",
"index" : "not_analyzed"
},
"name": {
"type": "string",
"analyzer": "char_analyzer",
"copy_to": ["common_suggest", "talents_suggest"],
"fields": {
"raw": {
"type": "string",
"analyzer": "case_insensitive_sort"
}
}
}
}
},