有没有办法让algolia的独特设置忽略某个值?

时间:2018-06-14 03:37:55

标签: algolia distinct-values

我在aloglia索引中有一些记录基本上是这样的:

Book Title     | Book Author
-----------------------------
The Red Dog    |  Simon McCowell
<br>
The Blue Dog   | Unknown
<br>
The Black Dog  | Unknown
<br>
The White Dog  | Simon McCowell

所以基本上在algolia索引上,我对属性“book author”有不同的设置。因此,如果书籍作者的任何值相同,它将复制结果,因此只有simon McCowell的一个结果将显示。但是,如果有很多书籍的作者是未知的,显然这些书不一定是相同的顺序,所以我不想删除具有属性“书籍作者”的值为“未知”的书籍的结果,有没有一种方法或设置,algolia可以忽略某个属性值的不同设置?

提前致谢!

1 个答案:

答案 0 :(得分:1)

无法防止在特定值上进行重复数据删除,但是当distinct属性缺失或null时,Algolia不会进行重复数据删除。

因此,如果您将示例中的数据格式化为:

[
    {
        "objectID": "1",
        "author": "Simon McCowell",
        "title": "The Red Dog"
    },
    {
        "objectID": "2",
        "author": null,
        "title": "The Blue Dog"
    },
    {
        "objectID": "3",
        "author": null,
        "title": "The Black Dog"
    },
    {
        "objectID": "4",
        "author": "Simon McCowell",
        "title": "The White Dog"
    }
]

...然后使用distinct=1查询索引将产生:

{
    "exhaustiveNbHits": false,
    "hits": [
        {
            "author": null,
            "objectID": "3",
            "title": "The Black Dog"
        },
        {
            "author": null,
            "objectID": "2",
            "title": "The Blue Dog"
        },
        {
            "author": "Simon McCowell",
            "objectID": "4",
            "title": "The White Dog"
        }
    ],
    "hitsPerPage": 20,
    "nbHits": 3,
    "nbPages": 1,
    "page": 0,
    "params": "distinct=1&query=",
    "processingTimeMS": 1,
    "query": ""
}

...据我了解,这就是您想要的。