npm 包 @elastic/search-ui 使用教程

阅读时长 7 分钟读完

什么是 @elastic/search-ui ?

@elastic/search-ui 是一个基于 Elasticsearch 构建并维护的开源库,可以为您的网站或应用程序提供完整的搜索界面和搜索体验。

该库提供了一个易于使用的 React 组件,可以轻松地集成到您的应用中。它还支持自定义组件,并提供了许多钩子,以便您可以完全控制搜索结果的呈现。

安装

在使用 @elastic/search-ui 之前,您需要确保已安装以下软件:

  • Node.js
  • npm
  • Elasticsearch(使用示例代码需要)

您可以使用 npm 命令在终端或命令提示符窗口中安装 @elastic/search-ui:

示例

以下是一个基本示例,用于搜索 Elasticsearch 中的电影数据。要运行该示例,请安装 Elasticsearch 并使用以下命令导入数据集:

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

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

使用 @elastic/search-ui

SearchBox

SearchBox 组件显示一个文本框,可以输入要搜索的文本。 用户可以在文本输入时使用键盘,或者通过点击按钮提交搜索查询。

以下是使用 SearchBox 组件的示例代码:

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

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

搜索结果

要显示搜索结果,可以使用 SearchProvider 组件。SearchProvider 组件是一个上下文提供者,它将搜索请求和搜索结果传递给其他 Search UI 组件。

以下是使用 SearchProvider 和 Results 组件的示例代码:

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

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

钩子

@elastic/search-ui 提供了一些钩子,以便您可以自定义搜索结果的呈现。一些常见的钩子包括:

  • preprocessResults: 在搜索结果传递给组件之前修改它们。
  • onResults: 在搜索结果传递给组件之后运行代码。
  • onSearchStateChange: 当用户在搜索框中输入内容时运行代码。

以下是使用 preprocessResults 钩子的示例代码:

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

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

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

总结

@elastic/search-ui 提供了一个易于使用的 React 组件,可以为您的网站或应用程序提供完整的搜索界面和搜索体验。通过使用自定义组件和钩子,可以完全控制搜索结果的呈现。希望这篇文章对您学习使用 @elastic/search-ui 有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/114691