npm 包 @terrajs/mono-elasticsearch 使用教程

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

在现代化的前端研发中,数据处理是一个不可避免的环节。而 Elasticsearch 则是一个非常流行的搜索引擎,被广泛地应用在日志分析、商品搜索、用户行为分析等领域。在本文中,我们将介绍如何使用 @terrajs/mono-elasticsearch 这个 npm 包来快速搭建一个 Elasticsearch 的前端搜索引擎。

安装

首先,我们需要在项目中引入该包。可以通过 NPM 或者 Yarn 安装:

--- ------- ---------------------------
- --
---- --- ---------------------------

搜索

该包实现了一个 Elasticseach 搜索的简单接口。使用方式如下:

----- - ------ - - --------------------------------------

----- ------ - --- --------
  ----- ----------------- -- ------------- --- --- --
  ------ ----------- -- ----
--

----- ------ - ----- -------------------- -------

-------------------

其中,search.search 接受一个字符串作为搜索关键字,返回一个 Promise。当搜索完成后,将返回一个包含搜索结果的对象,它包含了你搜索的文本与对应的得分、文档对应的 ID 等信息,并以降序返回。

插入数据

该包也提供了插入数据的能力。用 search.index 方法可以插入一个文档:

----- --------------
  ----- - -------- ------ ------ --
  --- -------
--

其中,id 是为该文档指定的 ID。

更新数据

接下来,让我们看一下文档更新的实现方案。使用 search.update 方法可以更新一条文档:

----- ---------------
  ----- - -------- ------ --------- --
  --- -------
--

注意,这里的 body 是用于更新的数据。

删除数据

另外,如果我们想删除一条文档,可以使用 search.delete 方法:

----- ----------------------

示例

最后,让我们来看一下这个包在实战场景中的使用举例。以下示例是一个基于 Vue.js 的搜索组件,可以从 Elasticsearch 中搜索出哈利波特书籍名称匹配关键字的结果:

----------
  -----
    ------ --------------- --
    ----
      --- ------------ -- ------- --------------- ----- -------
    -----
  ------
-----------
  
--------
------ - ------ - ---- -----------------------------

------ ------- -
  ------ -
    ------ -
      ------ ---
      ------- ---
    -
  --
  ----- --------- -
    ----- -------------------- - - ----- ----------------- ------ -------------- -
    ----------- - --- ----------------------------
  --
  --------- -
    -------------- -
      ------ ---------- --- --
    --
  --
  ------ -
    ----- ------- -
      -- ------------------- -
        ------ ------------ - ---
      -

      ----- -------- - ----- ------------------------------
      ----- ------ - ---------------------------- -- ------------------
      ----------- - ------
    --
  --
-
---------

在这个示例中,首先我们需要为该组件实例化一个搜索实例。在 mounted 钩子中,我们创建了一个使用 localhost:9200 作为 Elasticsearch 服务器地址、harry-potter 作为索引名称的搜索实例。

接下来,我们定义了 querytitles 两个响应式数据。前者负责存储用户输入的关键字,后者用于存储搜索结果。

在这个组件中,我们观察 query 数据的变化,于是编写了一个具有搜索功能的 watch 钩子。当用户输入非空关键字时,该钩子立即搜索 Elasticsearch,并将搜索结果中的书籍标题赋值给 titles 数据。

最后,这个组件中包含了一个 input 输入框和一个用于显示搜索结果的 ul 列表,我们根据 titles 数据动态渲染出若干个 li 元素。

结语

本文中,我们介绍了如何使用 @terrajs/mono-elasticsearch 这个 npm 包来快速搭建一个 Elasticsearch 的前端搜索引擎,并提供了详尽的使用文档。Elasticsearch 是一个功能强大、灵活且性能强劲的搜索引擎,它在许多场景下都有着得天独厚的优势。希望读者在本次阅读过程中,能够了解到 Elasticsearch 和该 npm 包的运用,并学习到如何基于它搭建出自己所需要的前端搜索引擎。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600562c981e8991b448e00ce


猜你喜欢

  • npm 包 async-array-loop 使用教程

    什么是 async-array-loop? async-array-loop 是一个可以让你在循环中使用异步函数的 npm 包。如果你曾经遇到过需要在循环中执行异步代码的情况,你一定知道这个过程非常繁...

    3 年前
  • npm 包 aytacworld-angular-validator 使用教程

    前言 在前端开发中,数据的校验和验证是非常重要的一项工作,而 Angular 框架中自带的验证器并不够完善,因此需要借助第三方库来完成一些较为复杂的验证逻辑。aytacworld-angular-va...

    3 年前
  • npm 包 pi-motion-detection 使用教程

    简介 pi-motion-detection 是一个基于 Node.js 的 npm 包,用于在树莓派上进行运动检测。该包使用了树莓派上的摄像头进行监测,通过比较相邻的图像来检测是否有运动。

    3 年前
  • npm 包 vue-direction-hover 使用教程

    在前端开发中,经常需要实现一些鼠标移动到某个元素上时的特效,比如鼠标移动到图片上时图片有一个方向的倾斜动画,这个时候我们可以使用 vue-direction-hover 这个 npm 包来实现。

    3 年前
  • npm 包 @validations/dsl 使用教程

    前言 在前端开发中,表单验证是一个很常见和重要的问题。在开发复杂的表单时,一些简单的验证方式往往不能满足需求,需要使用一些高级的表单验证方法。npm 包 @validations/dsl 就是一个方便...

    3 年前
  • npm 包 aytacworld-angular-comment 使用教程

    前言 前端开发中使用npm可以非常方便地管理依赖包。在Angular框架中,我们可以使用 aytacworld-angular-comment 这个第三方库来实现评论功能。

    3 年前
  • npm 包 @wizardsoftheweb/nyc-config-typescript 使用教程

    在前端开发中,测试是一个必不可少的环节。nyc 是一个用于覆盖率检测的工具。在 TypeScript 项目中,使用 nyc 检测 TypeScript 代码覆盖率需要进行一些配置。

    3 年前
  • npm 包 genoset-266 使用教程

    在前端开发中,我们经常需要用到许多第三方的库和插件。而 npm 就成了我们首选的包管理工具,它提供了海量的包供我们使用。在这些包中,genoset-266 是一个非常优秀的 npm 包,它能够让我们轻...

    3 年前
  • npm 包 marray 使用教程

    marray 是一个可以快速处理多维数组的 npm 包。它支持多种数组操作,如填充、变形、拼接等。本文将深入介绍 marray 的基本用法,帮助读者更好地掌握这个工具的使用。

    3 年前
  • npm 包 react-bullet-holes 使用教程

    在 React 开发中,引入 npm 包是非常常见的做法。其中,react-bullet-holes 是一款非常有趣的包,可以在页面中生成枪孔效果,非常适合用于射击游戏的页面设计。

    3 年前
  • npm 包 @dcs/ngx-components 使用教程

    在 Web 前端开发中,我们常常需要使用一些现成的 UI 组件库来加快我们的开发效率。而 @dcs/ngx-components 就是一个非常实用的组件库,可以提供丰富多彩的 UI 组件供我们使用,同...

    3 年前
  • npm 包 abs-array 使用教程

    在前端开发过程中,有很多时候需要操作数组,比如对数组进行排序、查找、过滤等。而其中一个常见的需求是将数组中的负数转换为正数。这个需求看似简单,但却可以使用一个 npm 包 abs-array 优雅地解...

    3 年前
  • npm 包 enjection 使用教程

    enjection 是一个帮助前端项目实现依赖注入的 npm 包。通过使用 enjection,我们可以轻松地在项目中实现服务的注入与管理,降低代码耦合度,提高代码可维护性。

    3 年前
  • npm 包 javascript-models 使用教程

    在前端开发中,数据模型是非常重要的一部分,在处理大量数据时,如何使用和管理数据模型,是每个前端工程师都需要面对的问题。针对这个问题,javascript-models是一个非常好用的npm包,它提供了...

    3 年前
  • npm 包 neutrino-middleware-esbuild 使用教程

    最近,随着前端工程化的发展,越来越多的项目开始采用现代化的技术栈,如 React、Webpack、Babel 等。而随之而来的是越来越长的打包时间和构建时间。为了解决这个问题,esbuild 应运而生...

    3 年前
  • npm 包 neutrino-middleware-jsdoc 使用教程

    前言 在前端开发中,我们经常会用到 jsdoc 来编写注释文档。但是 jsdoc 生成的文档需要手动打开查看,不是很方便。而 npm 包 neutrino-middleware-jsdoc 利用 we...

    3 年前
  • npm 包 postal.io 使用教程

    简介 在前端开发中,我们经常需要实现邮编的自动补全或者校验等功能,这时候 postal.io 这个 npm 包就可以派上用场了。postal.io 是一个基于邮政编码和相关信息的一个 npm 包,可以...

    3 年前
  • npm 包 @harpman71/platzom 使用教程

    简介 @harpman71/platzom 是一个 npm 包,旨在优化西班牙语单词。它可以执行以下操作: 如果单词以 "ar" 结尾,删除该后缀; 如果单词以 "z" 结尾,添加后缀 "pe"; ...

    3 年前
  • npm 包:neutrino-middleware-smartchunk 使用教程

    在前端开发中,使用 webpack 和其他打包工具,往往需要手动配置模块打包。为了更加方便快捷地完成模块打包,npm 包 neutrino-middleware-smartchunk 提供了一种智能块...

    3 年前
  • npm 包 docx-builder 使用教程

    在前端开发中,我们经常需要操作文档,而操作 Word 文档也是其中之一。而在前端领域,npm 包成为了我们方便获取、管理和使用第三方工具的利器。docx-builder 就是一款基于 npm 包的 W...

    3 年前

相关推荐

    暂无文章