Текущий стек включает node.js v0.12.7 работает с elasticsearch-Js> = 1.1.0 с Elasticsearch 1.7 API.Elasticseach завершение Suggester возвратные предложения от конкретного типа индекса
Мои текущие настройки elasticsearch отображается иметь 1 индекс с 2-х типов:
elasticsearch.client.indices.create({
index: 'randomindex',
body: {
"settings": {
"analysis": {
"filter": {
"autocomplete_filter": {
"type": "edge_ngram",
"min_gram": 1,
"max_gram": 20
}
},
"analyzer": {
"autocomplete": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"autocomplete_filter"
]
},
"my_english": {
"type": "english",
"stopwords": "_english_"
}
}
}
},
'mappings': {
'countries': {
'properties': {
'country': {
'type': 'string',
'fields': {
"autocomplete": { "type": "string", "index_analyzer": "autocomplete", "search_analyzer": "my_english" }
}
},
"suggest_countries": {
"type": "completion",
"index_analyzer": "simple",
"search_analyzer": "simple",
"payloads": true
}
}
},
'some_other_type': {
'properties': {
"field_1": {
"type": "date"
},
"field_2": {
"type": "string"
},
"suggest_some_other_field": {
"type": "completion",
"index_analyzer": "simple",
"search_analyzer": "simple",
"payloads": false
}
}
}
}
}
});
Я тогда заселена как внушение поля с соответствующими «вход», «выход» и поля «полезной нагрузки».
Я хотел бы указать конкретный тип индекса для возврата предложения от но бросают ошибки, когда я делаю это:
elasticsearch.clients.suggest({
index: "randomindex",
type: "countries",
body: {
"suggest": {
text: query,
completion: {
"field": "suggest_countries"
}
}
}
});
Есть ли способ, которым я мог бы указать/отношусь к конкретному типу в. предложить метод?
Просьба поделиться с вами информацией об ошибке ES. – Val
Ошибка при запуске на узле. он просто возвращает пустой массив параметров в объект ответа. Однако, когда я пытаюсь добраться до конечной точки '/ randomindex/countries/_suggest' через клиент, например расширение Google Sense для Google, я передаю что-то вроде' {"suggest_countries": {"text": "a", "completion": { «field»: «suggest_countries»}}} ', и он выдает ошибку, например,« MapperParsingException [не удалось выполнить синтаксический анализ]]; inested: ElasticsearchIllegalArgumentException [Неизвестное имя поля [текст], должно быть одним из [вывода, контекста, ввода, веса, полезной нагрузки]]; '. –
Я могу убедиться, что я правильно заполнил поле 'suggest_countries' в' autocomplete_countries', потому что я проверил значение Sense против конечной точки '/ randomindex/countries/_search', и все, кажется, там. –