什么是 @elastic/search-ui ?
@elastic/search-ui 是一个基于 Elasticsearch 构建并维护的开源库,可以为您的网站或应用程序提供完整的搜索界面和搜索体验。
该库提供了一个易于使用的 React 组件,可以轻松地集成到您的应用中。它还支持自定义组件,并提供了许多钩子,以便您可以完全控制搜索结果的呈现。
安装
在使用 @elastic/search-ui 之前,您需要确保已安装以下软件:
- Node.js
- npm
- Elasticsearch(使用示例代码需要)
您可以使用 npm 命令在终端或命令提示符窗口中安装 @elastic/search-ui:
npm install @elastic/search-ui
示例
以下是一个基本示例,用于搜索 Elasticsearch 中的电影数据。要运行该示例,请安装 Elasticsearch 并使用以下命令导入数据集:
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/movies/_bulk?pretty&refresh' --data-binary @movies.json
-- -------------------- ---- ------- ------ - --------------- --------- - ---- --------------------- -------- ----- - ------ - --------------- --------- ------------ - -------------- - ------ - -------- - ----- ---- --------- ----- -- -- ----- - -------- - ----- ---- --------- ----- -- -- -- ------------------ ---------- -- ------------- - ------- --------------- ----------------- -- - ----- ----------- - - ---------------------- ----------------- ----- -- ------ ------ ------------------------------------------------------------- - ------- ------- -------- - --------------- ------------------- -- ----- ---------------------------- - ----------------- -- ----------------- -- -- -- - ----- ---------- -- ------ ----------------- -- -
使用 @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