【資料庫寶典】ElasticSearch的Span Near

更新於 發佈於 閱讀時間約 4 分鐘
想學習Elasticsearch搜尋引擎資料庫的夥伴歡迎參考:
另外再推薦您一個基礎知識的文章:
那這次要介紹的主題主要是在Elasticsearch 搜尋引擎中的跨詞搜尋,你知道詞與詞之間也是存在著距離的嗎? 那這些詞可能是相近的,比如說: 打、藍球,這兩個詞之間的距離肯定是非常相近的,透過這樣的關係我們可以更加精確的找出我們的資料內容,至於為什麼能夠搜尋的這麼快呢? 這得感謝一項重要的技術:
透過這項技術讓我們可以將一整篇文章根據文字內容切碎成詞,以「詞」為單位進行索引,顛覆了以往我們對於資料庫的認識,過往的資料庫系統是以「欄位」為索引進行資料的整理,現如今因應大數據時代的來臨,做了創新的索引技巧,讓我們更能夠精確的找出我們想要的資料。

精華區在這裡...

範例句:
假設我們有一段文章以空白隔開的方式來切割詞彙,內容如下:
為了 提升 滿意度 我們 需要 您 填寫 問卷
假設條件為:
  • clauses:[提升,滿意度,問卷] 。
  • slop:4。
  • in_order: true
這裡的Slop代表範圍內不匹配的最大數量,從開始匹配的字詞框到最後加總一併進行計算。
查詢結構會是如此
{
"span_near": {
"clauses": [
{
"span_term": {
"dialogs": "提升"
}
},
{
"span_term": {
"dialogs": "滿意度"
}
},
{
"span_term": {
"dialogs": "問卷"
}
}
],
"slop": 4,
"in_order": true
}
}
請問上述條件是否能正確搜尋出文本?
答案: 可以, 因為「提升→ 滿意度 → 問卷」之間跨詞數量為4, 而我們條件是限定跨詞距離為4,符合搜尋條件, 因此可以被正確搜尋。
如果想要正確被搜尋出來只能增加跨詞距離來囊括匹配的範圍,但這個距離要怎麼抓呢? 勢必得根據需求以及觀察資料後才能決定這個部份的應用方式了,以上只是說明了Span Near Query的搜尋原理。

結語

原來所謂的跨詞距離就是將文字進行斷詞之後,進行逆向索引 , 以此為根基進行儲存並記載這個「詞」在哪個文件中的哪個位置,有了這些資訊之後就能夠在搜尋上加上「詞」與「詞」之間多少距離的查詢語法,這樣就能更貼近我們語言的去搜尋資料了,但這仍然不夠,規則還是有點硬邦邦的,更聰明的技術有沒有?
當然有! 但在這之前,務必請你閱讀一些關於自然語言處理的文章,累積一些基礎知識,之後再來談談關於Elasticsearch與自然語言之間究竟有什麼關係吧!
關於自然語言處理,也推薦你以下的免費文章進行閱讀:
為什麼會看到廣告
avatar-img
118會員
266內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
通常我們如果希望一筆資料是能夠具備唯一性的狀況下, 勢必在新增前會進行檢查, 但是在我們的應用程式中, 先查詢再寫入勢必會造成一些時間差, 導致於多人同時操作時, 可能發生重複資料的狀況。 假設我們的應用是不允許名稱重複, 那我們的資料可能如下: 我們的業務邏輯為「當名稱存在時就更新、不存在就新增」
不論我們使用Nodejs的Mongo Client還是Go語言甚至其他語言的套件, 應該都會看到連線選項中有poolSize這類的配置, 以下會介紹什麼是連線池、優點、應注意的事項。 首先來談談連接池之前的單一連接機制, 在配置正確的狀況下可能不會遇到任何問題, 但假設我們的應用同時間有100個用戶
MongoDB非常擅長查詢大量的數據並經常更新這些資訊, 在多數的情況之下, 我們只要查詢資訊最新的狀態, 那假設我們需要查詢資料的上一個狀態呢? 如果我們需要一些文檔版本控管功能時怎麼辦呢? 這就是我們可以使用版本控管設計模式的地方了。 這個模式之下會保存文檔的歷史版本, 我們就不用導入另外一個版
本篇主要是介紹MongoDB有哪些進階的索引, 了解原理及功能後, 在應用上才能規劃出更有效率的索引, 而主要會談到以下五個索引類型: 複合索引。 部份索引。 多鍵索引。 全文索引。 TTL索引。 進入到索引類型之前先提醒一下,一個集合的索引數不能超過64個。 限制: 最多只能31個欄位做一組複合索
主要是收攏documents的容器, 可以支援各種不同結構的document。 不能為空字串。 不能以system開頭, 這是系統集合保留的前綴。 超過配置大小, 新增時當超過配置限額時, 會先從最早的document刪除後再append新的document。 更新時不能超過size限制。 不能刪除
通常我們如果希望一筆資料是能夠具備唯一性的狀況下, 勢必在新增前會進行檢查, 但是在我們的應用程式中, 先查詢再寫入勢必會造成一些時間差, 導致於多人同時操作時, 可能發生重複資料的狀況。 假設我們的應用是不允許名稱重複, 那我們的資料可能如下: 我們的業務邏輯為「當名稱存在時就更新、不存在就新增」
不論我們使用Nodejs的Mongo Client還是Go語言甚至其他語言的套件, 應該都會看到連線選項中有poolSize這類的配置, 以下會介紹什麼是連線池、優點、應注意的事項。 首先來談談連接池之前的單一連接機制, 在配置正確的狀況下可能不會遇到任何問題, 但假設我們的應用同時間有100個用戶
MongoDB非常擅長查詢大量的數據並經常更新這些資訊, 在多數的情況之下, 我們只要查詢資訊最新的狀態, 那假設我們需要查詢資料的上一個狀態呢? 如果我們需要一些文檔版本控管功能時怎麼辦呢? 這就是我們可以使用版本控管設計模式的地方了。 這個模式之下會保存文檔的歷史版本, 我們就不用導入另外一個版
本篇主要是介紹MongoDB有哪些進階的索引, 了解原理及功能後, 在應用上才能規劃出更有效率的索引, 而主要會談到以下五個索引類型: 複合索引。 部份索引。 多鍵索引。 全文索引。 TTL索引。 進入到索引類型之前先提醒一下,一個集合的索引數不能超過64個。 限制: 最多只能31個欄位做一組複合索
主要是收攏documents的容器, 可以支援各種不同結構的document。 不能為空字串。 不能以system開頭, 這是系統集合保留的前綴。 超過配置大小, 新增時當超過配置限額時, 會先從最早的document刪除後再append新的document。 更新時不能超過size限制。 不能刪除
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
搜尋引擎,是世界上最大的圖書館。當你想借某一本書、提供書的「線索」,搜尋引擎會從好幾億本合適的書籍裡,在0.1秒之內,挑出最適合的10本。所以你必須思考怎麼讓圖書館優先推薦你的書?
Thumbnail
這篇文章主要是介紹了SQL查詢效能調校的方法,針對索引最佳化做了整理和分享,並提供了一些注意事項和建議。
Thumbnail
免費SEO優化電子書, 省下5000元, 一萬七千多字完全免費送! SEO優化電子書目錄 【SEO基礎知識】 什麼是SEO? SEO搜尋引擎的運作原理 【關鍵字研究】 SEO關鍵字研究的方法有哪些? SEO關鍵字分析工具 在進行關鍵字研究時,使用一些專門的關鍵字分析工具可以幫
最近實踐將學術閱讀流水線化,效率顯著提升。 其中已經有兩個動作實踐了50次以上,達到標準化。 動作一:將文獻內容轉為資訊塊 良品一標準 原料:閱讀材料的文本形式 成果物:資訊塊 動作二:將資訊塊匯集成話題索引筆記 (Keyword Index) 良品二 原料:帶著
Thumbnail
搜尋意圖是用戶進行搜索時的目的,分為資訊性、商業、導航和交易意圖。瞭解搜尋意圖對於優化網站和創建有價值的內容非常重要,可以通過關鍵字研究、內容優化和了解目標受眾的需求來實現。
Thumbnail
這篇文章,會帶著大家複習以前學過的DFS框架, 並且以圖論的應用題與概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。 DFS 深度優先搜索框架 def dfs( parameter ): # 邊界條件 if base case or stop cond
Thumbnail
這篇文章,會帶著大家複習以前學過的二分搜尋法(Binary Search)框架, 並且以二分搜尋法的概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個實用的演算法框架。 Binary search 二分搜尋法框架 用途: 在已經排序好的數列中尋找目標值。
Thumbnail
題目敘述 題目會給定兩個輸入。 第一個輸入是關鍵字清單products,第二個是使用者輸入的字串searchWord。 要求我們實現關鍵字搜尋建議系統,使用者每輸入一個字元就推薦一次。 推薦時,優先返回字典序(Lecial order)最接近的關鍵字,最多不要超過三個關鍵字。 題目的原文
Thumbnail
在Dcard有人求救一個問題:想要將layer與panel的資料提出出來,如下圖。 這個題目是很經典的需求,就是多條件查找,多條件查找有蠻多種不同的解決方法,甚至版本不同解法也是天壤之別哦。 準備動作 在寫函數之前,記得要先觀察一下我們想要提取的資料有什麼樣的規則,可以發現A欄中只
Thumbnail
這題也是滿經典的DP動態規劃教學案例和題目,就順便複習一下吧。 題目敘述 題目會給我們兩個字串text1, text2。 要求我們找出兩個字串的最長共同子序列,並且返回最長共同子序列的長度。 如果彼此沒有共同子序列,則返回0。 題目的原文敘述 測試範例 Example 1: In
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
搜尋引擎,是世界上最大的圖書館。當你想借某一本書、提供書的「線索」,搜尋引擎會從好幾億本合適的書籍裡,在0.1秒之內,挑出最適合的10本。所以你必須思考怎麼讓圖書館優先推薦你的書?
Thumbnail
這篇文章主要是介紹了SQL查詢效能調校的方法,針對索引最佳化做了整理和分享,並提供了一些注意事項和建議。
Thumbnail
免費SEO優化電子書, 省下5000元, 一萬七千多字完全免費送! SEO優化電子書目錄 【SEO基礎知識】 什麼是SEO? SEO搜尋引擎的運作原理 【關鍵字研究】 SEO關鍵字研究的方法有哪些? SEO關鍵字分析工具 在進行關鍵字研究時,使用一些專門的關鍵字分析工具可以幫
最近實踐將學術閱讀流水線化,效率顯著提升。 其中已經有兩個動作實踐了50次以上,達到標準化。 動作一:將文獻內容轉為資訊塊 良品一標準 原料:閱讀材料的文本形式 成果物:資訊塊 動作二:將資訊塊匯集成話題索引筆記 (Keyword Index) 良品二 原料:帶著
Thumbnail
搜尋意圖是用戶進行搜索時的目的,分為資訊性、商業、導航和交易意圖。瞭解搜尋意圖對於優化網站和創建有價值的內容非常重要,可以通過關鍵字研究、內容優化和了解目標受眾的需求來實現。
Thumbnail
這篇文章,會帶著大家複習以前學過的DFS框架, 並且以圖論的應用題與概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。 DFS 深度優先搜索框架 def dfs( parameter ): # 邊界條件 if base case or stop cond
Thumbnail
這篇文章,會帶著大家複習以前學過的二分搜尋法(Binary Search)框架, 並且以二分搜尋法的概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個實用的演算法框架。 Binary search 二分搜尋法框架 用途: 在已經排序好的數列中尋找目標值。
Thumbnail
題目敘述 題目會給定兩個輸入。 第一個輸入是關鍵字清單products,第二個是使用者輸入的字串searchWord。 要求我們實現關鍵字搜尋建議系統,使用者每輸入一個字元就推薦一次。 推薦時,優先返回字典序(Lecial order)最接近的關鍵字,最多不要超過三個關鍵字。 題目的原文
Thumbnail
在Dcard有人求救一個問題:想要將layer與panel的資料提出出來,如下圖。 這個題目是很經典的需求,就是多條件查找,多條件查找有蠻多種不同的解決方法,甚至版本不同解法也是天壤之別哦。 準備動作 在寫函數之前,記得要先觀察一下我們想要提取的資料有什麼樣的規則,可以發現A欄中只
Thumbnail
這題也是滿經典的DP動態規劃教學案例和題目,就順便複習一下吧。 題目敘述 題目會給我們兩個字串text1, text2。 要求我們找出兩個字串的最長共同子序列,並且返回最長共同子序列的長度。 如果彼此沒有共同子序列,則返回0。 題目的原文敘述 測試範例 Example 1: In