gpt4 book ai didi

elasticsearch - 查找包含带有特殊字符的子字符串的文档

转载 作者:行者123 更新时间:2023-12-03 01:46:50 25 4
gpt4 key购买 nike

我在elasticsearch v5.2.2中有一些文档如下所示:

{
"took": 4,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 1,
"hits": [
{
"_index": "company",
"_type": "external",
"_id": "2",
"_score": 1,
"_source": {
"name": "IBM",
"bloomberg": "IBMB34:BZ"
}
},
{
"_index": "company",
"_type": "external",
"_id": "1",
"_score": 1,
"_source": {
"name": "Apple",
"bloomberg": "AAPL34:BZ"
}
},
{
"_index": "company",
"_type": "external",
"_id": "3",
"_score": 1,
"_source": {
"name": "Microsoft",
"bloomberg": "MSFT34:BZ"
}
}
]
}
}

我想找到所有包含可能包含特殊字符(在我的情况下为':')的子字符串的文档。
{
"query": {
"wildcard" : { "bloomberg" : "*b34*" }
}
}

返回一个结果(按预期)。
{
"query": {
"wildcard" : { "bloomberg" : "*b34:*" }
}
}

不返回任何内容。我尝试了query_string和其他各种方法,但似乎没有任何效果。

最佳答案

问题在于我使用的映射是开箱即用的。将彭博过滤器的分析器更改为“空白”对我来说已解决。

{
"mappings": {
"external" : {
"properties" : {
"name" : {
"type" : "string",
"analyzer": "standard",
"search_analyzer": "standard"
},
"bloomberg" : {
"type" : "string",
"analyzer": "whitespace",
"search_analyzer": "whitespace"
}
}
}
}
}

关于elasticsearch - 查找包含带有特殊字符的子字符串的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43249985/

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