gpt4 book ai didi

elasticsearch - ElasticSearch在包含破折号的 bool 过滤器上不返回任何结果

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

我已索引2个对象(ES 1.5)

{
tags: ["tag1","bla-bla"]
}

{
tags: ["tag2"]
}

如果我提出此要求:
{
"query": {
"filtered": {
"filter": {
"bool": {
"should":
[
{
"term": {
"tags": "bla-bla"
}
}
]
}
}
}
}
}

flex 返回 无结果,因为在“标签”字段中有 “-”

如果我搜索此文件,它会起作用,我有1个结果:
...
"term": {
"tags": "tag1"
}
...

有人可以解释为什么当我在“标签”字段中使用破折号(-)时没有结果吗?

最佳答案

如果未指定,则一个自定义的Elasticsearch将Standart Analyzer分析字段。 Standart分析器将删除标点符号(在您的情况下为-),并将您的术语标记为[tag1bla]。

您可以使用term vectors检查分析的表单:

GET <index>/<type>/<id>/_termvectors?fields=tags

关于elasticsearch - ElasticSearch在包含破折号的 bool 过滤器上不返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37232582/

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