gpt4 book ai didi

search - Elasticsearch 输入分析

转载 作者:行者123 更新时间:2023-12-03 01:05:11 26 4
gpt4 key购买 nike

Elastic Search可以将输入字符串拆分为分类的单词吗?即如果输入是

4star wi-fi 99$



并且我们正在搜索具有ES的酒店,是否有可能将此字符串分析/标记为 4star - hotel level, wi-fi - hotel amenities, 99$ - price

是的,这是一个菜鸟问题:)

最佳答案

是的,没有。

默认情况下, query_string searches将与automatically created _all field一起使用。 _all字段的内容来自将所有字段按字面意义和天真的组合成单个分析字符串的方式。

因此,如果您具有“4星”评级,“wi-fi”便利设施和“99 $”价格,则所有这些值都将在_all字段内,并且您应该获得相应的点击率。例如:

{
"level" : "4star",
"amenity" : ["pool", "wi-fi"],
"price" : 99.99
}

问题在于,如果没有客户端的努力,您将不知道在搜索 _all时匹配了哪些字段。它不会告诉您每个值的来源明细,而只是报告确定整体相关性的分数。

如果您有某种方式了解每个术语(或多个术语)要搜索的字段,那么您可以自己轻松地做到这一点(不需要引号,但是最好避免空格错误)。这可能是您可以提供给上面链接的 query_string查询的输入:
level:"4star" amenity:"wi-fi" price:(* TO 100)

您可以通过使用详细说明的查询来进一步使其复杂化:
{
"query" : {
"bool" : {
"must" : [
{ "match" : { "level" : "4star" } },
{ "match" : { "amentiy" : "wi-fi" } },
{
"range" : {
"price" : {
"lt" : 100
}
}
}
]
}
}
}

当然,最后两个请求将需要有关每个搜索词所引用内容的高级知识。您当然可以使用“99 $”中的 $作为价格提示,而不是其他提示。我希望您不希望他们输入4星,而是选择一些复选框或其他基于表单的选择,所以这应该很现实。

从技术上讲,您可以创建一个自定义分析器来根据每个词的位置识别每个词,但这并不是一个好主意。

关于search - Elasticsearch 输入分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31090993/

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