elasticsearch Elastic Search Regex未按预期工作

suzh9iv8  于 2023-06-21  发布在  ElasticSearch
关注(0)|答案(2)|浏览(117)

我已经去的问题,使ElasticSearch正则表达式的工作。我有一个文档,看起来像这样:

{"content": "keySyAtUXpd8JxrpUH2Sd"}

我尝试了下面的正则表达式key[0-9A-Za-z_]{18},它与www.example.com中的字符串完全匹配regexer.com,但当我从ElasticSearch中查询请求时,它没有显示任何命中。
下面是我使用的请求:

curl -XGET 'https://localhost:9200/_search?pretty' -H 'Content-Type: application/json' -H 'Authorization: Basic redacted' -k -d '{
  "query": { "regexp": { "content": "key[0-9A-Za-z_]{18}" } }
}'

我也试过用正则表达式.*key[0-9A-Za-z_]{18}.*,试图将-转义为\\-,但它似乎不起作用。

jw5wzhpr

jw5wzhpr1#

您需要对content.keyword字段运行regexp查询

curl -XGET 'https://localhost:9200/_search?pretty' -H 'Content-Type: application/json' -H 'Authorization: Basic redacted' -k -d '{
  "query": { "regexp": { "content.keyword": "key[0-9A-Za-z_]{18}" } }
}'

PS:更容易测试和提供反馈,有真实的的内容和真实的查询;- )

nvbavucw

nvbavucw2#

您应该添加-H "Content-Type: application/json"
试试这个:

curl -u elastic:password -XPOST "https://localhost:9200/test_regex/_bulk?refresh" -H "Content-Type: application/json" -d'
{"index":{"_id":"1"}}
{"content": "keySyAtUXpd8JxrpUH2Sd"}
'
curl -u elastic:password -XGET "https://localhost:9200/_search?pretty" -H "Content-Type: application/json" -d'
{
  "query": { "regexp": { "content": "key[0-9A-Za-z_]{18}" } }
}'

相关问题