Я пытаюсь использовать ElasticSearch 1.7.3 для реализации функции «Вы» для поисковой системы моей компании. Я следил за документацией, чтобы настроить Phrase Suggestester, и создал настраиваемое сопоставление для поддержки этого.Encountering ElasticsearchIllegalArgumentException при использовании фразы. Указатель
Однако, когда я делаю запрос _suggest
, я получаю ElasticsearchIllegalArgumentException[Suggester[simple_phrase] not supported]
. Что я делаю не так?
Это мой запрос:
POST knowledge_graph/entities/_suggest
{
"suggest": {
"text" : "apple in",
"simple_phrase": {
"phrase" : {
"field" : "canonical_name"
}
}
}
}
Я получаю следующий ответ:
{
"_shards": {
"total": 5,
"successful": 0,
"failed": 5,
"failures": [
{
"index": "knowledge_graph",
"shard": 0,
"status": 500,
"reason": "BroadcastShardOperationFailedException[[knowledge_graph][0] ]; nested: ElasticsearchException[failed to execute suggest]; nested: ElasticsearchIllegalArgumentException[Suggester[simple_phrase] not supported]; "
},
...
]
}
}
Вот параметры моего индекса и отображения:
{
"knowledge_graph": {
"aliases": {},
"mappings": {
"entities": {
"properties": {
"autocomplete": {
"type": "completion",
"analyzer": "simple",
"payloads": true,
"preserve_separators": true,
"preserve_position_increments": true,
"max_input_length": 50
},
"canonical_name": {
"type": "string",
"analyzer": "simple",
"fields": {
"shingles": {
"type": "string",
"analyzer": "simple_shingle_analyzer"
}
}
},
"entity_query": {
"properties": {
"simple_phrase": {
"properties": {
"phrase": {
"properties": {
"field": {
"type": "string"
}
}
}
}
},
"text": {
"type": "string"
}
}
},
"suggest": {
"properties": {
"simple_phrase": {
"properties": {
"phrase": {
"properties": {
"field": {
"type": "string"
}
}
}
}
},
"text": {
"type": "string"
}
}
}
}
}
},
"settings": {
"index": {
"creation_date": "1449251691345",
"analysis": {
"filter": {
"shingles_1_6": {
"type": "shingle",
"max_shingle_size": "6",
"output_unigrams_if_no_shingles": "true"
}
},
"analyzer": {
"simple_shingle_analyzer": {
"type": "custom",
"filter": [
"lowercase",
"shingles_1_6"
],
"tokenizer": "standard"
}
}
},
"number_of_shards": "5",
"number_of_replicas": "0",
"version": {
"created": "1070399"
},
"uuid": "g_Yp7z6kQHCDRtd6TvVlzQ"
}
},
"warmers": {}
}
}
Спасибо за ответ, но, к сожалению, что-то явно отключено моим ElasticSearch. Когда я делаю ваш запрос против конечной точки '_search', я просто возвращаю каждый документ (т. Е. Похоже на пустой поиск). Когда я пытаюсь выполнить ваш запрос '_suggest', я возвращаю ответ, подтверждающий, что я проиндексировал документ с' _id' как '_suggest' – oxymor0n
add' "size: 0' в' _search', чтобы видеть только предложения и с 'предложить' выполнить запрос только по индексу и не печатать, я сожалею об этом, см. мой обновленный ответ. – ChintanShah25