gpt4 book ai didi

elasticsearch - 未分析对分析字段的查询

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

我有一些文件以分析形式存储品牌名称,例如:{"name":"Samsung"}{“名称”:“运动系统”}。在某些情况下,我想要以“s”开头的术语搜索,这应该会导致两个文档。在另一种情况下,我只想要以“s”查询开头的完整字段,结果只返回“samsung”。我已经分析了名称字段并存储了它。有什么方法可以让我在 Elasticsearch 中完成从查询开始的完整字段?

最佳答案

您应该使用 multi_field 以两种不同的方式索引您的字段.如果您像已经做的那样对其进行标记化,那么您将根据标记器生成的标记进行匹配。对于您想要的第二种匹配类型,您需要禁用分析字段并按原样对其进行索引,或者使用 Keywork tokenizer产生相同的结果。您的映射将如下所示:

{
"your_type" : {
"properties" : {
"brand" : {
"type" : "multi_field",
"fields" : {
"brand" : {"type" : "string", "index" : "analyzed"},
"untouched" : {"type" : "string", "index" : "not_analyzed"}
}
}
}
}
}

然后您可以在两个字段上进行搜索。当您搜索 brand 时,您会得到已有的匹配项,而在搜索 brand.untouched 时,您会得到第二种匹配项。有多种方法可以组合多个查询,例如,您可以查看 bool query。 .

关于elasticsearch - 未分析对分析字段的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12881075/

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