如何使用 Elasticsearch 或其他搜索引擎?

How can I use Elasticsearch or another search engine?

我想知道哪个搜索引擎最适合以下用例?

我们有一个应用程序可以从不同平台抓取广告。用户可以使用 keyword 和其他过滤器属性(价格、位置等)添加 searches。当我们收到一个新广告时,我们想要找到所有与广告标题匹配的 searches

假设您有一个标题如下的广告:

I want to sale Iphone 7 plus, 16GB, black, 9/10 并使用此标题查询搜索 collection.

现在假设您使用以下关键字进行搜索:

  1. Iphone 7 16GB
  2. Iphone 8 plus
  3. Iphone 7 black 32GB
  4. Iphone 7

主要目标是仅匹配:14 搜索。因为 23 中有 advert 标题中没有的词。

无论您为此使用什么搜索引擎(Algolia、Elastic...),它们都将允许您执行此类限制性请求。

对于 Elasticsearch,您将使用带有 and operatormatch 子句,基本标准分析器将起作用。

Elasticsearch 中还有一个功能,允许您存储请求(也就是您的用户关键字)并向它们发送文档(广告)以获得匹配的请求列表。这叫做 Percolator.