gpt4 book ai didi

elasticsearch - elasticsearch搜索字段的第n个字符与参数匹配的位置

转载 作者:行者123 更新时间:2023-12-02 23:17:17 24 4
gpt4 key购买 nike

Elasticsearch索引具有这样的json文档

{
id: ABC120379013
name: Matlo Jonipa
jobs: {nested data}
}

定义索引架构时,我将id注册为关键字。

现在,我需要编写一个查询,该查询可以返回ID字段值中第4个字符为数字9的所有文档。
# matched docs
id: ABC920379013,
id: Zxr900013000
...

对于这个用例,我有两个问题。

1-当我将id设置为关键字字段时,是否可以正确索引?我觉得我应该使用一些分析仪,但我不知道是哪一个。

2-有人可以指导我如何编写查询以匹配字段的第n个字符吗?

我可以使用此正则表达式匹配第4个字符为9的字符串,但可以在Elasticsearch查询中使用它吗?
/^...9.*$/
or
/^.{3}9.*$/

最佳答案

下面的查询将帮助您的用例。我用过Script Query

另外,是的,您做得对,您需要确保id字段的类型为keyword。请注意,keyword类型不使用analyzers

POST regexindex/_search
{
"query": {
"bool" : {
"must" : {
"script" : {
"script" : {
"source": "doc['id'].value.indexOf('9') == 3",
"lang": "painless"
}
}
}
}
}
}

我已经提到了 .indexOf('9') == 3,因为索引从 0开始

关于elasticsearch - elasticsearch搜索字段的第n个字符与参数匹配的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53275014/

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