gpt4 book ai didi

php - Elasticsearch:试图找出合适的搜索查询算法

转载 作者:行者123 更新时间:2023-12-03 01:17:56 24 4
gpt4 key购买 nike

我想要一种 flex 搜索的结果,其中输入的搜索字符串与文档的多个字段匹配,并从索引中列出结果是列表中显示的最大字段匹配记录数和最后显示的最少字段匹配记录数。

例如:如果我正在搜索关键字“test”,而我的一个索引记录中有12个以上的字段。

现在,如果1条记录中的10个字段匹配测试
然后在另一个记录的6个字段中进行匹配,
然后在另一个记录中的2个字段。

我想在列表中显示第一条记录,其中搜索字符串的匹配项的最大字段数匹配到最小字段数匹配。

按照此示例,第一个记录显示10个字段与搜索字符串匹配,第二个显示6个字段匹配,第三个显示2个字段匹配并继续...

如果能够获得一些不错的建议或示例,那就很好。

最佳答案

这是elasticsearch的默认行为。匹配次数更多的文档得分更高

查询:

{
"query": {
"query_string": {
"default_field": "*", -->search in all fields
"query": "test"
}
}
}

结果:
{
"_index" : "index18",
"_type" : "_doc",
"_id" : "iSCe6nEB8J88APx3YBGn",
"_score" : 0.9808291, --> scored higher as two fields match
"_source" : {
"field1" : "test",
"field2" : "test"
}
},
{
"_index" : "index18",
"_type" : "_doc",
"_id" : "iiCe6nEB8J88APx3ghF-",
"_score" : 0.4700036,
"_source" : {
"field1" : "test",
"field2" : "abc"
}
}

关于php - Elasticsearch:试图找出合适的搜索查询算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61637471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com