lucene - Elasticsearch 查询通过通配符过滤出ID

标签 lucene elasticsearch

我希望创建一个查询,该查询将过滤出包含通配符的ID。例如,除了ID包含单词current之外,我想在所有地方搜索内容。这可能吗?

最佳答案

是的,可以使用Regex Filter / Regex Query。我无法找到一种直接使用Complement选项直接执行此操作的方法,因此我暂时使用bool must_not解决您的问题。如果可能的话,我会在稍后完善答案。

POST <index name>/_search
{
   "query": {
      "match_all": {}
   },
   "filter": {
      "bool": {
         "must_not": [
            {
               "regexp": {
                  "ID": {
                     "value": ".*current.*"
                  }
               }
            }
         ]
      }
   }
}

关于lucene - Elasticsearch 查询通过通配符过滤出ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25878959/

相关文章:

elasticsearch - Elasticsearch 动态聚合

elasticsearch - Elasticsearch-是否可以使索引和类型具有相同的名称?

Solr numDocs 溢出

Solr 复杂刻面

java - Carrot2 在搜索时不显示所有包含特定单词的簇

java - Spring Data ElasticSearch (7.9.3) 将字段添加到现有索引

Elasticsearch 查询不能匹配字段中的文本

java - Lucene - 不需要索引的字符串字段

lucene - 嵌套可枚举对象(i18n)的ElasticSearch映射

java - Elasticsearch Java API - 构建查询