gpt4 book ai didi

search - 使用“stop”时,在Elasticsearch中“_all”过滤器的行为有所不同

转载 作者:行者123 更新时间:2023-12-03 02:05:43 25 4
gpt4 key购买 nike

我正在尝试在 match 中实现Elasticsearch搜索,并且我注意到行为是不同的,具体取决于我是否使用_all还是输入特定的字符串值作为查询的字段名称。

为了提供一些背景信息,我创建了具有以下设置的索引:

{
"settings": {
"analysis": {
"analyzer": {
"default": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"standard",
"lowercase",
"stop",
"kstem",
"word_delimiter"
]
}
}
}
}
}

如果我创建如下文档:
{
"name": "Hello.World"
}

然后使用 _all执行搜索,例如:
 curl -d '{"query": { "match" : { "_all" : "hello" } }}' http://localhost:9200/myindex/mytype/_search

它将 正确地匹配文档(因为我使用 stop过滤器在点处分割单词),但是如果我执行此查询,则:
curl -d '{"query": { "match" : { "name" : "hello" } }}' http://localhost:9200/myindex/mytype/_search

什么也没有返回。这怎么可能?

最佳答案

/myindex/mytype/_mapping发出GET,并查看是否按照您认为的方式配置了索引。含义,例如,查看该“名称”字段是否为not_analyzed

甚至更多,运行以下查询以查看name字段的实际索引方式:

{
"query": {
"match": {
"name": "hello"
}
},
"fielddata_fields": ["name"]
}

您应该在结果中看到以下内容:
    "fields": {
"name": [
"hello",
"world"
]
}

如果不这样做,则说明 name字段的映射存在问题。

关于search - 使用“stop”时,在Elasticsearch中“_all”过滤器的行为有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26601104/

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