1

在我的索引中,我有 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 行和包含 的lyova14 行leva。我不明白为什么它不返回其中包含的剩余 26 行leva。总命中数也是 15,而显然应该是 41。在我看来,我在这里遇到了一个弹性搜索错误。

4

0 回答 0