Python:Elasticsearch中的通配符查询

2024-05-29 03:04:31 发布

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

我想在Elasticsearch中使用通配符查询字段,但问题是搜索字符串存储在变量中,不能静态使用。 预期查询是:

body={"query": {"wildcard": {"Name": { "value" : "Vi?????" }}}}

其中,搜索字符串“Vi”在编译时不可用。它将由用户提供。假设它存储在某个变量str(=“Vi”)中。我应该如何使用str和“?”s表示查询


Tags: 字符串用户namevalue静态bodyelasticsearchquery
1条回答
网友
1楼 · 发布于 2024-05-29 03:04:31

您必须在python中使用+连接

你需要避开双引号。有很多方法可以做到这一点。我更喜欢escaping double quotes as \"

searchWord ="Vi";
query = "{\"query\": {\"wildcard\": {\"Name\": { \"value\" : \"" + searchWord + "?????\" }}}}";
print (query);

searchWord是您从用户那里收到的东西。我硬编码的

query是您需要形成的。这就是我如何形成它的\"" + searchWord + "?????\"

请检查并提供我需要考虑的任何信息。

编辑:

searchWord ="Vi";
x = 2;
query = "{\"query\": {\"wildcard\": {\"Name\": { \"value\" : \"" + "[a-z]{" + str(x) +"}" + searchWord + "?????\" }}}}";
print (query);

相关问题 更多 >

    热门问题