Algolia 排名边缘案例

问题描述

我是 Algolia 和 Django 的新手,因此非常感谢您对以下任务的任何帮助。

我正在尝试重新排列 UI 上的搜索结果,以便某些边缘情况不再导致问题。问题是最初只使用了一个搜索属性,但我们实际上希望将其拆分为 2 个。我这样做了,因此我将初始属性拆分为 2 个属性,分别称为 attribute_1 和 {{1 }} 并将它们传递到 attribute_2 文件的设置中,如下所示:

index.py

然后将以下内容传递给排名选项:

"searchableAttributes": [
            "attribute_1","attribute_2"
        ]

从文档中我了解到,在上述列表中添加属性的顺序会优先搜索,因此搜索引擎将首先在 "ranking": [ "typo","exact","words","attribute","proximity","filters","custom",] 中查找匹配项,然后在 attribute_1 中查找。这解决了其中一种边缘情况的问题,但仍有一种边缘情况未解决。我将在下面更详细地解释这种边缘情况的问题。

调用我想为剩余边缘情况 E1 和 E2 排名的 2 个示例。

搜索关键字,称为 attribute_2,与 E1 的 some_text 完全匹配,但在 E1 的 attribute_1 中根本找不到,而 attribute_2 包含在 { E2 的 {1}}(不是严格包含在 some_text 中的完美匹配),它也被视为 E2 的 attribute_2 中的错字匹配。这导致 E2 在搜索结果中的排名高于 E1,而我希望它们的排名正好相反。

我试过使用restrictSearchableAttributes (https://www.algolia.com/doc/api-reference/api-parameters/restrictSearchableAttributes/) 我可以根据需要在仪表板上重新排列 E1 和 E2,但不能从代码库中重新排列。但是,我认为这在执行搜索时忽略了 attribute_2,这实际上是我不想要的,因为我希望在两个字段上都执行搜索,只是在 attribute_1 中匹配的搜索应该排名高于在 attribute_2 中匹配的那些。我还尝试增加 attribute_1attribute_2 以使拼写限制更严格,但我仍然无法解决问题。

有人知道如何解决这个问题吗?任何帮助将不胜感激,如果需要,我可以提供更多背景/说明。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...