我已经尝试过,但是没有找到解决方法。
这是我数据库中有一个数组的示例:
{
Users:{
{
"name":"User1",
"interest":["cats"]
},
{
"name":"User2",
"interest":["dogs"]
},
{
"name":"User3",
"interest":["bird"]
}
}
}
我要搜索所有用户。例如,兴趣=猫或狗或鸟。
我阅读了Algolia文档,并且具有过滤器功能,例如:“ interest:cats或interest:dogs”-但这不是程序性的。如何使其具有程序性?
我的第二个问题是当我写猫和狗时,结果为空值,但是当我写猫 s 和dog s (复数,例如数据库中的值),结果为true。我该如何解决?
谢谢
答案 0 :(得分:1)
我不确定您使用程序化编程是什么意思,对不起,我将跳过这一部分。
此处的搜索有两个方面,可能会让您感到困惑。您可以按关键字或过滤器进行搜索。
按关键字搜索是指您键入cats
或什至cat
或cast
(有错字)的情况。 Algolia将返回与您键入的内容匹配的所有记录。您可以通过索引设置的searchableAttributes
定义哪些字段应可搜索。您的情况应该是searchableAttributes: ['interest']
。
除关键字搜索外,还通过过滤器搜索。那时,您只需要与特定过滤器值完全匹配的结果。您首先必须使用interest
将attributesForFaceting: ['interest']
定义为构面,然后才能使用interest:cats or interest:dogs
语法。请注意,对于过滤器,该值必须完全按保存时的原样写入(即,没有输入错误)。
希望有帮助,