我已经使用Spring Boot通过Elasticsearch构建了一个可以正常工作的自动填充服务,但是我无法为自动填充语句分配不同的权重。
在构建Completion
对象(org.springframework.data.elasticsearch.core.completion.Completion
)的同时,我正在使用标准构造函数,接下来,我将权重分配给该对象,例如(我在使用Kotlin)
val completion = Completion(arrayOf("Sentence one", "Second sentence"))
completion.weight = 10
(...)
myEntity.suggest = completion
为Elasticsearch产生以下JSON
{
"suggest" : {
"input": [ "Sentence one", "Second sentence" ],
"weight" : 10
}
}
但是,根据Elasticsearch文档(https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html),我想实现这样的目标
{
"suggest" : [
{
"input": "Sentence one",
"weight" : 10
},
{
"input": "Second sentence",
"weight" : 5
}
]
}
spring-data-elasticsearch
有可能吗?如果是,该怎么办?
答案 0 :(得分:1)
否,目前,Spring Data Elasticsearch不支持第二种情况。
您显示的JSON都是有效的,当ich输入具有不同的权重时,第一个用于多个具有相同权重的输入,第二个用于多个输入。
请在Spring Data Elasticsearch Jira中提出问题,以添加对Completion
对象的支持以支持这种情况。