在Algolia上进行多次"LIKE"字符串搜索

Dan*_*iel 2 algolia

我目前正在研究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社区的问题有关的帖子,但它并没有给我很多见解. 在多个字段中查询多个术语

我认为有一个解决方案,因为我相信这是一个非常常见的用例.如果有人遇到类似的情况或一些见解会很棒.非常感谢.

ray*_*jes 7

我认为LIKE应用于facet 的MySQL 查询的最佳等价物将是使用searchForFacetValues.

以下是有关该功能的文档:https://www.algolia.com/doc/api-client/javascript/search/#search-for-facet-values