首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索:"fuzzy_like_this_field“筛选器查询不工作

弹性搜索:"fuzzy_like_this_field“筛选器查询不工作
EN

Stack Overflow用户
提问于 2015-12-16 09:05:08
回答 1查看 383关注 0票数 0

我在弹性搜索过滤器中面临以下问题:

当我试图在字符串值上应用"fuzzy_like_this_field“时,它就正常工作了。

但是,当我在字符串以外的不同数据类型上应用"fuzzy_like_this_field“过滤器时(例如,double,Date),它不起作用。

它给

ElasticsearchIllegalArgumentException[fuzzy_like_this_field不支持二进制/数字字段。

请参阅下面的弹性搜索查询

代码语言:javascript
复制
{"query": {"bool": {"must": [{"fuzzy_like_this_field": {"Receipts.retailerId": {"like_text": "55f5878916c042cc8731a39e4e05b7a0","fuzziness":0.3}}},{"fuzzy_like_this_field": {"Receipts.totalCost": {"like_text": "10","fuzziness":0.3}}}],"must_not": [],"should": []}},"from": 0,"size": 1000,"sort": [],"facets": {}}

其中retailerId - String和totalCost - double

如果我将totalCost数据类型double更改为string,那么它可以工作。

所以请提出解决办法?

EN

回答 1

Stack Overflow用户

发布于 2015-12-19 03:07:14

模糊查询扩展文本搜索结果,以包含来自查询项的特定Levenshtein距离术语。它们通过边距( -fuzziness <= value <= +fuzzyiness )扩展数值(需要更改或转换字符数来匹配)--然而,fuzzy_like_thisfuzzy_like_this_field似乎只支持字符串匹配(通过Levenshtein距离)。

fuzzy_like_thisfuzzy_like_this_field查询在ES 1.6+中不受欢迎。而且他们都受到了性能问题的困扰。你应该找到另一种方法来完成你的目标。

有很多方法可以应用模糊匹配,但我不确定模糊匹配是你想要的。

通过具体说明:

代码语言:javascript
复制
"fuzzy_like_this_field":{  
                  "Receipts.retailerId":{  
                     "like_text":"55f5878916c042cc8731a39e4e05b7a0",
                     "fuzziness":0.3
                  }
               }

您要求匹配与多达22个编辑的like_text匹配的所有like_textEdit distance = length(term) * (1.0 - fuzziness) = 32 * 0.7 = 22.4

因此,在这种情况下,55ddddddd6c0ddddddd1a3dddddddda0将被限定为与55f5878916c042cc8731a39e4e05b7a0的模糊匹配,因为10个字符共享相同的位置。

如果您只是在寻找重复的事务,那么为什么不使用匹配查询或筛选器来匹配您的retailerIdtotalCost呢?

代码语言:javascript
复制
"query":{  
      "bool":{  
         "must":[  
            {  
               "match":{  
                  "Receipts.retailerId": "55f5878916c042cc8731a39e4e05b7a0" 
               }
            },
            {  
               "match":{  
                  "Receipts.totalCost": 10
               }
            }
         ]
      }
   }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34307767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档