elasticsearch通配符查询忽略某些单词

yx2lnoni  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(2)|浏览(694)

通配符查询“beurr*”似乎忽略了单词“beurre”。
例如,我有一个名为“beurre de cacahu”的数据ète”。
常规查询查找以下数据:

{
   "query": {      
     "query_string" : {                 
       "query" : "beurre",
     }
   }                     
}

对另一个单词的通配符查询也是如此:

{
    "query": {
        "wildcard" : {
            "name" : "cacahuet*"  
        }
    }
}

但此通配符查询未找到匹配项:

{
    "query": {
        "wildcard" : {
            "name" : "beur*"  
        }
    }
}

我有很多数据应该是匹配的,但我完全没有发现这种行为的原因。。。

ha5z0ras

ha5z0ras1#

这个问题是由使用“light\u french”词干分析器引起的。去掉它就解决了问题。

igsr9ssn

igsr9ssn2#

将查询字符串更改为通配符

{
    "query": {
        "wildcard" : {
            "{TEXT_OR_KEYWORD_FIELD}" : "*{STRING_PATTERN}*"
        }
    }
}

src公司:https://kb.objectrocket.com/elasticsearch/how-to-use-regexp-and-wildcard-queries-to-return-documents-with-a-partial-string-match

相关问题