什么是 NPM 包 found?
NPM 包 found 是一种用于构建搜索引擎的库,它支持全文搜索、地理搜索、标签搜索等功能。它使用了 Elasticsearch 及其相关组件,可以轻松地扩展到大规模数据集。
安装
使用 NPM 包管理器安装:
npm install found
使用 FOUND
初始化
首先,我们需要创建一个基础的搜索服务,示例代码如下:
const { createSearchClient } = require('@appbaseio/searchbox'); const client = createSearchClient({ host: 'http://localhost:9200', app: 'my-app-name', }); const search = require('found').createSearch(client);
该代码可以创建一个连接到 Elasticsearch 的客户端,并随后使用 found 创造一个搜索服务实例 search
。
简单搜索
接下来,我们可以执行一些简单的搜索操作。例如,我们可以搜索商品名字中含有 “iPhone” 的商品:
-- -------------------- ---- ------- ------- - ------ - ------ - ----- -------- -- -- -- ----- ---- -- - ----------------- ----------------- - --展开代码
在这个简单的例子中,我们只是使用了一个基本的 Elasticsearch match 查询来执行搜索操作。
全文搜索
found 也支持全文搜索。我们可以使用 Elasticsearch multi_match 查询来实现。以下是一个示例:
-- -------------------- ---- ------- ------- - ------ - ------------ - ------ ------- -- ----- ------- ---------- --------------- -- -- -- ----- ---- -- - ----------------- ----------------- - --展开代码
该代码中,我们定义了一个多字段搜索,搜索字段包括 name
和 description
。我们还使用 ^5
来指定 name
字段的权重比 description
字段高。
地理搜索
found 还支持通过经纬度进行地理搜索。以下是一个示例:
-- -------------------- ---- ------- ------- - ------ - ------------- - --------- ------- --------- - ---- ------ ---- ------- -- -- -- -- ----- ---- -- - ----------------- ----------------- - --展开代码
这会搜索距离 40.73, -73.93
位置 10 公里以内的结果。
过滤器
我们还可以通过添加过滤器来简化我们的搜索。以下是一个示例:
-- -------------------- ---- ------- ------- - ------ - ----- - ----- - ------ - ----- -------- -- -- ------- - ------ - ------ - ---- ---- ---- ---- - -- -- -- -- -- ----- ---- -- - ----------------- ----------------- - --展开代码
该代码将搜索名字中包含 “iPhone”、价格在 500 到 1000 之间的商品。
结论
found 是一个支持全文搜索、地理搜索和多种查询方式的搜索引擎构建库。使用 found,您可以轻松地创建强大的搜索引擎,为您的应用程序和网站提供更好的搜索体验。这里只是 found 的基础使用方法,还有更多的功能和选项可以探索。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/63098