问题描述
我是 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_1
和 attribute_2
以使拼写限制更严格,但我仍然无法解决问题。
有人知道如何解决这个问题吗?任何帮助将不胜感激,如果需要,我可以提供更多背景/说明。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)