通配符查询“beurr*”似乎忽略了单词“beurre”。
例如,我有一个名为“beurre de cacahu”的数据ète”。
常规查询查找以下数据:
{
"query": {
"query_string" : {
"query" : "beurre",
}
}
}
对另一个单词的通配符查询也是如此:
{
"query": {
"wildcard" : {
"name" : "cacahuet*"
}
}
}
但此通配符查询未找到匹配项:
{
"query": {
"wildcard" : {
"name" : "beur*"
}
}
}
我有很多数据应该是匹配的,但我完全没有发现这种行为的原因。。。
2条答案
按热度按时间ha5z0ras1#
这个问题是由使用“light\u french”词干分析器引起的。去掉它就解决了问题。
igsr9ssn2#
将查询字符串更改为通配符
src公司:https://kb.objectrocket.com/elasticsearch/how-to-use-regexp-and-wildcard-queries-to-return-documents-with-a-partial-string-match