elasticsearch子字符串查询的一个特例

2024-05-29 02:42:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用elasticsearch在文档列中搜索子字符串。文档列包含长度正好为255个字符的字符串。在该列中,我希望搜索指定位置内子字符串的出现情况。例如,我想搜索位于字符串字符位置5-7处的子字符串“ABC”。因此xxxxabcxxx。。。是有效答案,但xxabcxxx。。。不是(考虑索引从1开始)

通配符查询可以搜索子字符串,但不能搜索指定的固定位置

{
    "query": {
        "wildcard": {
           "String Name": {
              "value": "*ABC*"
           }
        }
    }
}

如何在python中表达此查询


Tags: 字符串答案name文档string情况elasticsearchquery
1条回答
网友
1楼 · 发布于 2024-05-29 02:42:18

您可以使用^{}过滤器来实现这一点吗

from elasticsearch import Elasticsearch

es = Elasticsearch(...)
resp = es.search(
    index="index-name",
    body={
        "query": {
            "regexp": {
                "String Name": {
                    "value": "^.{4}ABC"
                }
            }
        }
    }
)
print(resp)

您必须启用^{}才能使用regexp过滤器

<;披露:我是Python Elasticsearch客户端的维护者,受雇于Elastic>

相关问题 更多 >

    热门问题