Spring Data Elasticsearch:如何创建具有多个权重的 Completion 对象?
Spring Data Elasticseach: How to create Completion object with multiple weights?
我已经成功地使用 Elasticsearch 和 Spring Boot 构建了一个有效的自动完成服务,但是我无法为我的自动完成句子分配不同的权重。
当我构建 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
可以吗?如果是,我该怎么做?
不,目前 Spring Data Elasticsearch 目前不支持第二种情况。
您显示的两个 JSON 都是有效的,第一个是针对所有具有相同权重的多个输入,第二个是针对多个输入,当 ich 输入具有不同的权重时。
请在 Spring Data Elasticsearch Jira 中提交问题以添加对 Completion
对象的支持以支持这种情况。
我已经成功地使用 Elasticsearch 和 Spring Boot 构建了一个有效的自动完成服务,但是我无法为我的自动完成句子分配不同的权重。
当我构建 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
可以吗?如果是,我该怎么做?
不,目前 Spring Data Elasticsearch 目前不支持第二种情况。
您显示的两个 JSON 都是有效的,第一个是针对所有具有相同权重的多个输入,第二个是针对多个输入,当 ich 输入具有不同的权重时。
请在 Spring Data Elasticsearch Jira 中提交问题以添加对 Completion
对象的支持以支持这种情况。