gpt4 book ai didi

elasticsearch - 在 Elasticsearch 中使用模糊查询时找到实际匹配词

转载 作者:行者123 更新时间:2023-11-29 02:49:38 28 4
gpt4 key购买 nike

我是 elasticsearch 的新手,正在四处寻找模糊查询搜索。
我用这样的对象/记录值制作了一个新的索引产品

{
"_index": "products",
"_type": "product",
"_id": "10",
"_score": 1,
"_source": {
"value": [
"Ipad",
"Apple",
"Air",
"32 GB"
]
}
}

现在,当我在 elasticsearch 中执行模糊查询搜索时,例如

{
query: {
fuzzy: {
value: "tpad"
}
}
}

它返回我预期的正确记录(上面刚刚制作的产品)。
而且我知道术语 tpadipad 匹配,因此返回记录。
但从技术上讲,我怎么知道它与 ipad 匹配。 Elasticsearch 像这样返回完整的记录(或记录)

{
"took": 4,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.61489093,
"hits": [
{
"_index": "products",
"_type": "product",
"_id": "10",
"_score": 0.61489093,
"_source": {
"value": [
"Ipad",
"Apple",
"Air",
"32 GB"
]
}
}
]
}
}

在 Elasticsearch 中有什么方法可以让我知道它是否匹配 tpadipad

最佳答案

如果你使用 highlighting , Elasticsearch 将显示匹配的术语:

curl -XGET http://localhost:9200/products/product/_search?pretty -d '{
"query" : {
"fuzzy" : {
"value" : "tpad"
}
},
"highlight": {
"fields" : {
"value" : {}
}
}
}'

Elasticsearch 将返回匹配的文档并突出显示该片段:

{
"took" : 31,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.13424811,
"hits" : [ {
"_index" : "products",
"_type" : "product",
"_id" : "10",
"_score" : 0.13424811,
"_source":{
"value" : ["Ipad",
"Apple",
"Air",
"32 GB"
]
},
"highlight" : {
"value" : [ "<em>Ipad</em>" ]
}
} ]
}
}

关于elasticsearch - 在 Elasticsearch 中使用模糊查询时找到实际匹配词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26945217/

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