多个" LIKE"字符串搜索Algolia

时间:2017-07-16 13:58:25

标签: algolia

我目前正在研究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

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

1 个答案:

答案 0 :(得分:7)

我认为应用于构面的MySQL LIKE查询的最佳等价物是使用searchForFacetValues

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