regex - ElasticSearch 短语查询中的正则表达式查询

标签 regex elasticsearch search

我正在使用 Elasticsearch,我需要执行phrase_search,其中第一个术语匹配为正则表达式。 更准确地说: 我需要搜索具有此模式的字符串:

“(数字)毫秒”。

我知道有“regexp”查询类型,但是只允许我搜索一个术语。使用两个 bool 子句也不起作用,因为它与顺序无关。

相反,我想使用“regexp”运算符以某种方式嵌套在短语查询中,以便在精确的序列中进行匹配。

有人知道怎么做吗?

最佳答案

已分析(标记化)字段的正则表达式查询只能应用于一个术语,因此您无法执行多单词正则表达式查询。您不需要在映射中分析(例如使用 keyword 类型)ES 字段,这将允许您将正则表达式与整个短语匹配,而不仅仅是术语。

关于regex - ElasticSearch 短语查询中的正则表达式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47552221/

相关文章:

elasticsearch - ES 可从 curl 访问但不能从 Marvel/Sense 访问

spring-boot - Kubernetes-通过minikube中的Spring Boot应用程序连接Elasticsearch

c# - Nest-ElasticSearch.Net-如何分割搜索属性返回的FacetFilter命中计数

search - 如何索引纯文本文件以在 Sphinx 中进行搜索

javascript - 如何搜索该对象以查看用户是否具有权限?

C# - 获取目录中以特定格式开头的文件名

Python 正则表达式 : How to append string if found and append "Not Found" otherwise?

ruby-on-rails - 太阳黑子的亮点没有出现

c++ - 在 C++ 中结合正则表达式

regex - strsplit 一开始