中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么快速構建優異的React搜索體驗

發布時間:2021-11-05 14:02:47 來源:億速云 閱讀:146 作者:iii 欄目:web開發

這篇文章主要介紹“怎么快速構建優異的React搜索體驗”,在日常操作中,相信很多人在怎么快速構建優異的React搜索體驗問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么快速構建優異的React搜索體驗”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

搜索引擎:Elastic 應用搜索

Elastic  應用搜索可作為一項付費的托管服務或免費的自管型分發提供。在本教程中,我們將使用托管服務,但請記住,如果您自己托管的話,您的團隊可以通過基本許可_免費_使用  Search UI 和應用搜索。

計劃:將代表有史以來最好的電子游戲的文檔索引到搜索引擎中,然后設計并優化搜索體驗,以搜索它們。

首先,注冊以獲得 14 天的試用期 — 不需要信用卡。

創建一個引擎。有 13 種不同的語言可供選擇。

我們將它命名為 video-games,并將語言設為 English(英語)。

怎么快速構建優異的React搜索體驗

下載 best video games data set(最佳電子游戲數據集),然后使用導入程序將其上傳到應用搜索。

接下來,單擊“Engine”(引擎),然后選擇 Credentials(憑據)選項卡。

創建一個新的具有有限引擎訪問權限的公共搜索密鑰,以只能訪問 video-games 引擎。

檢索這個新的公共搜索密鑰和您的主機標識符。

雖然看起來不怎么樣,但我們現在有了一個功能齊全的搜索引擎,可以使用優化的搜索 API 來搜索我們的電子游戲數據了。

下列是截止現在我們已完成的操作:

  • 創建了搜索引擎

  • 采集了文檔

  • 創建了默認架構

  • 檢索了可公開給瀏覽器的、限定范圍的一次性憑據

這些是截至現在針對應用搜索所做的操作。

下面我們使用 Search UI 開始構建搜索體驗。

搜索庫:Search UI

我們將使用 create-react-app 支架實用工具來創建 React 應用:

怎么快速構建優異的React搜索體驗

在此基礎上,我們將安裝 Search UI 和應用搜索連接器:

怎么快速構建優異的React搜索體驗

在開發模式下啟動應用:

怎么快速構建優異的React搜索體驗

使用您喜愛的文本編輯器打開 src/App.js。

我們將從一些樣本代碼開始入手,將其解包。

注意備注!

怎么快速構建優異的React搜索體驗

第 1 步:導入語句

我們需要導入 Search UI 依賴項和 React。

核心組件、連接器和視圖組件包含在三個不同的包中:

  • @elastic/search-ui-app-search-connector

  • @elastic/react-search-ui

  • @elastic/react-search-ui-views

隨著課程的進行,我們將了解每個包的更多信息。

怎么快速構建優異的React搜索體驗

此外,我們還將為這個項目導入默認樣式表,這樣我們無需編寫自己的 CSS 行便可獲得良好的外觀和感覺:

怎么快速構建優異的React搜索體驗

第 2 步:連接器

我們從應用搜索獲取了公共搜索密鑰和主機標識符。

現在是使用它們的時候了!

Search UI 中的連接器對象使用憑據與應用搜索掛鉤并支持搜索:

怎么快速構建優異的React搜索體驗

Search UI 可與任何搜索 API 協同工作。但是有了連接器,搜索 API 不需要任何更深層配置,便可以正常工作。

第 3 步:configurationOptions

在深入探討 configurationOptions 之前,我們花點時間認真思考一下。

我們將一組數據導入了搜索引擎。但是,這是什么樣的數據呢?

我們對數據了解越多,就越能知道如何將數據提供給搜索人員,并能知曉如何配置搜索體驗。

讓我們看一個對象,它是這個數據集中最好的對象:

怎么快速構建優異的React搜索體驗

We see that it has several text fields like name, year, platform, and so on  and some number fields like critic_score, global_sales, and user_score.

If we ask three key questions, we’ll know enough to build a solid search  experience:

  • How will most people search?By the name of the video game.

  • What will most people want to see in a result?The name of the video game, its  genre, publisher, scores, and its platform.

  • How will most people filter, sort, and facet?By score, genre, publisher, and  platform.

We then can translate those answers into our configurationOptions:

怎么快速構建優異的React搜索體驗

我們已將 Search UI 連接到搜索引擎,接下來選擇管理搜索數據、顯示結果和瀏覽結果的方式。但是,我們需要一些東西將所有內容與 Search UI  的動態前端組件聯系起來。

第 4 步:SearchProvider

這是控制所有內容的對象。SearchProvider 是嵌套所有其他組件的位置。

Search UI 提供了 Layout 組件,用于繪制典型的搜索布局。另有一些深入定制選項,但我們在此教程中不做深入介紹。

我們將做兩件事情:

  1. 鴻蒙官方戰略合作共建——HarmonyOS技術社區

  2. 將 configurationOptions 傳入 SearchProvider。

  3. 將一些結構構建塊放入 Layout,并添加兩個基本組件:SearchBox 和 Results。

怎么快速構建優異的React搜索體驗

目前,我們已在前端完成基本設置工作。后端還有一些額外細節需要處理,然后我們才能運行。我們還應該研究相關度模型,以便根據這個項目的獨特需求對搜索進行微調。

退出到應用搜索……

回到實驗室

應用搜索具有強大而優化的搜索引擎功能,能夠使一度復雜的調整變得更加有趣。通過幾次單擊,便可以執行精細的相關度調整和無縫架構更改。

我們將首先調整架構來查看它的實際情況。

登錄應用搜索引擎,然后單擊 Manage(管理)部分下的 Schema(架構)。

此時將顯示架構。11 個字段中的每個字段都默認為 text(文本)。

在 configurationOptions 對象中,我們定義了兩個范圍分面來幫助按數字搜索:user_score 和  critic_score。為了使范圍分面按預期工作,字段類型需要設為數字。

單擊每個字段旁的下拉菜單,將其改為 number(數字),然后單擊 Update Types(更新類型):

怎么快速構建優異的React搜索體驗

引擎即刻重新索引。稍后,當我們將分面組件添加到布局中時,范圍篩選器將按我們預期的方式工作。現在,看看真正實用的功能。

本部分非常重要

有三個關鍵的相關度功能:同義詞、管理和相關度調整。

選擇側欄中 Search Settings(搜索設置)部分下的每項功能:

怎么快速構建優異的React搜索體驗

同義詞

有些人開轎車,有些人開汽車,有些人可能開老爺車。互聯網是全球性的,世界各地的人們用不同的詞語來描述事物。同義詞可幫助您創建一組被認為是相同的術語。

在電子游戲搜索引擎案例中,我們知道人們想要查找 Final Fantasy。但他們可能只鍵入 FF。

單擊 Synonyms(同義詞),選擇 Create a Synonym Set(創建同義詞集),然后輸入這些術語:

怎么快速構建優異的React搜索體驗

單擊 Save(保存)。您可以根據需要添加任意數量的同義詞集。

現在,搜索 FF 將與搜索 Final Fantasy 具有相同的權重。

管理

管理是最受歡迎的功能。如果某人搜索 Final Fantasy 或 FF,結果會怎樣呢?這個系列中有很多游戲,他們會獲得哪個結果呢?

默認情況下,排列前五的結果將如下顯示:

1.Final Fantasy VIII

2.Final Fantasy X

3.Final Fantasy Tactics

4.Final Fantasy IX

5.Final Fantasy XIII

這好像不對,Final Fantasy VII 才是 Final Fantasy 中最佳的一款游戲,而且 Final Fantasy XIII  不是很好的游戲! ?

我們是否可以讓搜索 Final Fantasy 的人們看到 Final Fantasy VII 列在第一位?是否可以從結果中刪除 Final  Fantasy XIII?

我們能做到!

單擊 Curations(管理),輸入查詢:Final Fantasy。

接下來,通過按住表最左側的把手,將 Final Fantasy VII 文檔向上拖動到 Promoted Documents(提升的文檔)部分。然后,單擊  Final Fantasy XIII 文檔上的 Hide Result(隱藏結果)按鈕 — 帶貫穿線的眼睛圖標:

怎么快速構建優異的React搜索體驗

現在,搜索 Final Fantasy 或 FF 將會看到 Final Fantasy VII 排在首位,

并且根本看不到 Final Fantasy XIII 了。哈哈!

我們可以提升和隱藏多個文檔。我們甚至可以對提升的文檔進行排序,以便完全控制每個查詢頂部顯示的內容。

相關度調整

單擊側欄中的 Relevance Tuning(相關度調整)。

我們搜索一個文本字段:name 字段。但是,如果我們擁有多個要搜索的文本字段(例如 name 字段和 description  字段),該怎么辦?我們使用的電子游戲數據集不包含 description 字段,因此,我們將偽造一些文檔來仔細考慮這個字段。

假設文檔類似如下:

怎么快速構建優異的React搜索體驗

如果某人想要查找游戲 Magical Quest,則會輸入它作為查詢。但是,第一個結果將是 Dangerous Quest:

怎么快速構建優異的React搜索體驗

為什么會這樣?這是因為“magical”一詞在 Dangerous Quest 的描述中出現了三次,搜索引擎不知道這個字段比另一個字段更重要。于是,它將  Dangerous Quest 排得更靠前。這就是要進行相關度調整的原因。

我們可以在其他內容中選擇一個字段,然后提高其相關度權重:

怎么快速構建優異的React搜索體驗

我們可以看到,在提高權重后,正確的項 Magical Quest 上升到頂部,因為 name 字段變得更重要。我們要做的就是將滑塊拖動到更高值,然后單擊  Save(保存)。

現在,我們使用應用搜索執行下列操作:

  • 調整架構,將 user_score 和 critic_score 更改為 number 字段。

  • 精細調整相關度模型。

至此,我們就介紹完了這些巧妙而先進的“儀表板”功能 — 每項功能都有匹配的 API 端點,如果您不喜歡 GUI,則可以使用 API  端點以編程方式運行各功能。

現在,讓我們完成 Search UI 的介紹。

收尾工作

現在,您的 UI  應該可以正常運行了。嘗試進行一些查詢,看看結果如何。首先,我們缺少一些工具來探索我們的結果,例如,篩選、分面、排序等等,但是可以搜索了。我們需要充實  UI。

在初始 src/App.js 文件中,我們導入了三個基本組件:

怎么快速構建優異的React搜索體驗

根據我們對配置選項定義的內容,讓我們再添加一些組件。

導入以下組件將會啟用 UI 中缺失的功能:

  • PagingInfo:在當前頁面上顯示信息。

  • ResultsPerPage:配置在每一個頁面上顯示的結果數。

  • Paging:導航不同的頁面。

  • Facet:以數據類型特有的方式篩選和瀏覽數據。

  • Sorting:重新排定給定字段的結果。

怎么快速構建優異的React搜索體驗

導入后,組件可以放入到 Layout 中。

Layout 組件將頁面分為多個部分,各組件可以通過屬性放入這些部分中。

它包含以下部分:

  • Header:搜索框/搜索欄

  • bodyContent:結果容器

  • sideContent:側欄,其中包含分面和排序選項

  • bodyHeader:圍繞結果包含了上下文豐富的信息,例如當前頁面和每一頁面上的結果數量

  • bodyFooter:用于在頁面之間快速導航的分頁選項

組件呈現數據。數據是根據我們在 configurationOptions 中提供的搜索設置進行獲取的。現在,我們將每個組件放入相應的 Layout  部分。

例如,我們在 configurationOptions 中描述了五個分面維度,因此,我們將創建五個 Facet 組件。每個 Facet  組件都將使用一個“field”屬性作為返回數據的鍵。

我們將它們以及 Sorting 組件放入 sideContent 部分中,然后將 Paging、PagingInfo 和 ResultsPerPage  組件放入最適合它們的部分中:

怎么快速構建優異的React搜索體驗

現在,讓我們看一下本地開發環境中的搜索體驗。

好多了!我們有了很多選項來瀏覽搜索結果。

我們添加了一些額外功能,例如,多個排序選項,并且通過添加單一標志使得發布者分面可篩選。嘗試使用一個空查詢進行搜索,從而瀏覽所有選項。

最后,我們看一下搜索體驗的最后一個功能。它就是受歡迎的

“自動完成”功能。

自動完成

搜索人員喜歡自動完成,因為它可以提供即時反饋。它的建議有兩種方式:結果和查詢。根據方式的不同,搜索人員將收到相關結果或生成結果的潛在查詢。

我們將重點介紹自動完成的查詢建議形式。

這需要做兩項快速更改。

首先,需要將自動完成添加到 configurationOptions 對象:

怎么快速構建優異的React搜索體驗

其次,需要將自動完成作為 SearchBox 的一個函數啟用:

怎么快速構建優異的React搜索體驗

好了,就這么簡單。

嘗試搜索一下。當您鍵入時,將顯示自動完成查詢建議。

到此,關于“怎么快速構建優異的React搜索體驗”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

重庆市| 武清区| 南安市| 湘阴县| 简阳市| 郁南县| 萍乡市| 启东市| 刚察县| 景泰县| 田东县| 平邑县| 民乐县| 界首市| 龙里县| 星座| 都匀市| 侯马市| 凭祥市| 辛集市| 遂平县| 盐津县| 屯门区| 沈阳市| 河西区| 雅江县| 修文县| 汝州市| 麟游县| 馆陶县| 东乌珠穆沁旗| 许昌市| 定西市| 尚义县| 大荔县| 定陶县| 新泰市| 北票市| 道孚县| 邹城市| 阿尔山市|