我有一个带有标准标记生成器的字段,并且文档插入如下:
1个
{
name : Hello World
}
2
{
name : Hello World Welcome
}
3
{
name : Hello World Welcome to the World
}
如何查询“Hello World”并返回所有带有“Hello and World”字样的文档,以及第一个与“Hello World”完全匹配的文档,其得分会更高
最佳答案
您可以像这样简单地实现它:
POST test/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "Hello World"
}
}
],
"should": [
{
"match_phrase": {
"name": "Hello World"
}
}
]
}
}
}
第一个
match
约束将匹配所有三个文档,并且should/match_phrase
约束将增强第一个文档,即,它的得分将比其他两个文档略高。关于elasticsearch - 使用标准分词器进行完全匹配的Elasticsearch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60333400/