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