我目前正在研究Algolia的定位服务功能。我有一个简单的问题。
是否可以搜索多个"喜欢"字符串,类似于MySQL中的内容?
select * from route
WHERE pickup LIKE "51%"
AND dropoff LIKE "80%";
在Algolia上,让我们假设有一个由小数据组成的简单索引:
[{
"pickup" : "51105",
"dopoff" : "80637"
},
{
"pickup" : "51105",
"dopoff" : "39871"
},
{
"pickup" : "32791",
"dopoff" : "40545"
}]
我已经检查过它可以通过给定两个参数来检索,例如:
index.search({
facetFilters: 'pickup: 51105, dropoff:80637',
}
我们也可以使用普通查询和拼写错误作为目标参数之一
index.search({
query: '51',
restrictSearchableAttributes: [
'pickup'
],
}
但他们都不满足于我原来的要求。
我发现了一篇可能与我在algolia社区的问题有关的帖子,但它没有给我很多见解。 Querying multiple terms in multiple fields
我认为有一个解决方案,因为我相信这是一个非常常见的用例。 如果有人遇到类似的情况或一些见解会很棒。非常感谢。
答案 0 :(得分:7)
我认为应用于构面的MySQL LIKE
查询的最佳等价物是使用searchForFacetValues
。
以下是有关该功能的文档:https://www.algolia.com/doc/api-client/javascript/search/#search-for-facet-values