Я следовал учебнику в https://www.elastic.co/guide/en/elasticsearch/reference/current/suggester-context.html#suggester-context, чтобы построить индекс.
PUT qs
{
"mappings": {
"questions" : {
"properties" : {
"suggest" : {
"type" : "completion",
"contexts": [
{
"name": "domain",
"type": "category",
"path": "domain"
}
]
}
}
}
}
}
На каждый вопрос у меня есть
PUT qs/questions/1
{
"suggest": {
"input": ["a", "b", "c", "d"],
"contexts": {
"domain": ["domain1"]
},
"weight" : 2
}
}
Наконец, когда я ищу, я использую
POST qs/_search?pretty
{
"suggest": {
"question-suggest" : {
"prefix" : "实名",
"completion" : {
"field" : "suggest",
"size": 100,
"contexts": {
"domain": [
{ "context" : "小金库", "boost" : 1},
{ "context" : "白条闪付", "boost": 4}
]
}
}
}
}
}
Мне интересно, как я могу реализовать это в Java? Я пробовал
SearchResponse response = client.prepareSearch(esIndexName)
.setQuery(QueryBuilders.wrapperQuery(queryString))
.setTimeout(TimeValue.timeValueMillis(this.requestTimeout))
.setExplain(false)
.setSize(responseSize)
.execute()
.actionGet();
но это дает мне исключение
ParsingException [нет [запроса] зарегистрировано для [предложить]]
Большое вам спасибо за помощь!