Elasticsearch:试图找出合适的搜索查询算法
Elasticsearch: Trying to find out appropriate searching query algorithm
我想要弹性搜索的结果,输入的搜索字符串与文档的多个字段匹配,并列出索引的结果是字段匹配记录的最大数量显示在第一位,字段匹配记录的最少数量显示在最后在列表中。
例如:如果我正在搜索关键字 "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"
}
}
我想要弹性搜索的结果,输入的搜索字符串与文档的多个字段匹配,并列出索引的结果是字段匹配记录的最大数量显示在第一位,字段匹配记录的最少数量显示在最后在列表中。
例如:如果我正在搜索关键字 "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"
}
}