在我的索引中,我有 40 行数据如下:
| -name- | -surname- | -bdate string- | -creation date- |
| leva | agabalyan | 19560901 | 2013-09-21T11:19:13.968Z |
| leva | agabalyan | 19560901 | 2012-03-14T11:16:47.665Z |
| leva | agabalyan | 19560901 | 2012-02-19T11:38:47.972Z |
| leva | agabalyan | 19560901 | 2011-08-22T11:49:57.995Z |
.....
所有这些行都具有相同的姓名、姓氏和出生日期字符串字段。唯一的区别是创建日期。在实际应用程序中,字段/列明显更多(大约 30 个),但您会看到它们不参与查询。此外,在搜索查询的时间范围之外,我还有更多这样的行。所以我想这些也不应该有所作为。
我也有这样的单行:
| -name- | -surname- | -bdate string- | -creation date- |
| lyova | aghabalyan | 19560901 | 2013-06-27T11:19:33.345Z |
如您所见,与第一个表的区别在于姓名和姓氏字段。名称相差 2 个符号,姓氏相差 1。
对于搜索,我使用此查询:
{ “询问”:{ “布尔”:{ “必须”:[{ “模糊”:{ “注册名称”:{ “价值”:“lyova”, “最小相似度”:“0.45” }} }, {“模糊”:{ “注册.姓氏”:{ “价值”:“aghabalyan”, “最小相似度”:“0.65” }} }, {“学期”:{ "registration.birthDateStr":"19560601" }}, {“范围”:{ “注册。创建”:{ “来自”:“2011-01-01”, “到”:“2014-01-01” } }} ], “一定不”:[], “应该”:[]} }, “从”:0, “尺寸”:50, “种类”:[], “方面”:{} }
此搜索查询返回包含 的 1 行和包含 的lyova
14 行leva
。我不明白为什么它不返回其中包含的剩余 26 行leva
。总命中数也是 15,而显然应该是 41。在我看来,我在这里遇到了一个弹性搜索错误。