Elasticsearch(入門篇)——全文檢索(一)恩敌、全文VS短語

前言

關于倒排索引等內容,將不做介紹到推,可以看<a href="">《Elasticsearch權威指南》</a>更多內容:<a href="">ELK修煉之道</a>

短語 vs 全文

雖然所有的查詢都會進行相關度計算,但不是所有的查詢都會有分析階段惕澎。而且像boolfunction_score這樣的查詢并不在文本字段執(zhí)行分析莉测。

1、基于短語(Term-based)的查詢:
term(在filter上下文中)或fuzzy一類的查詢是低級查詢唧喉,它們沒有分析階段捣卤。這些查詢在單一的短語上執(zhí)行。例如對單詞Footerm查詢會在倒排索引里精確查找Foo這個詞八孝,并對每個包含這個單詞的文檔計算TF/IDF相關度_score
term查詢只在倒排查詢里精確低查找特定短語董朝,而不會匹配短語的其它變形,如FooFOO干跛。不管短語怎樣被加入索引子姜,都只匹配倒排索引里的準確值。如果你在一個設置了not_analyzed的字段為["Foo", "Bar"]建索引楼入,或者在一個用whitespace解析器解析的字段為Foo Bar建索引哥捕,都會在倒排索引里加入兩個索引FooBar牧抽。

2、全文(Full-text)檢索
matchquery_string這樣的查詢是高級查詢遥赚,他們會對字段進行分析:

  • 如果檢索一個dateinteger字段扬舒,他們會把查詢語句作為日期或者整數(shù)格式數(shù)據(jù)。
  • 如果檢索一個精確值(not_analyzed)字符串字段凫佛,他們會把整個查詢語句作為一個短語讲坎。
  • 如果檢索一個全文(analyzed)字段,查詢會先用適當?shù)慕馕銎鹘馕霾樵冋Z句御蒲,產生需要查詢的短語列表。然后對列表中的每個短語執(zhí)行低級查詢诊赊,合并查詢結果厚满,得到最終的文檔相關度。

全文檢索

全文檢索最重要的兩個方面:

  • 相關度(Relevance)
    根據(jù)文檔與查詢相關程度對結果進行排序的能力碧磅。相關度可以使用TF/IDF碘箍,地理位置相近程度、模糊相似度或其他算法計算鲸郊。
  • 分析(Analysis)
    將一段文本轉換成一組唯一的丰榴、標準化了的標詞(term),用以(a)創(chuàng)建倒排索引,(b)查詢倒排索引

注意:
一旦我們提到相關度和分析秆撮,指的都是查詢(queries)而非過濾器(filters)

//驗證match查詢也不一定全部要做分析
PUT my_index3/
{
  "mappings" : {
    "my_type" : {
    "properties" : {
      "message" : {
        "type" : "string",
        "index" : "analyzed"
      }
      "message1" : {
        "type" : "string",
        "index" : "not_analyzed"
      }
    } 
  }
  }
}
//索引一條數(shù)據(jù)
POST my_index3/my_type
{
  "message" : "boy",
  "message1" : "boy"
}

POST /my_index3/my_type/_search
{
  "query": {
    "filtered": {
      "filter": {
        "match": {
          "message1": "BOY"
        }
      }
    }
  }
}
//response
{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}

//同樣的查詢message1就可以查到了

在很少的情況下四濒,你可能才需要使用基于詞條的查詢(Term-based Queries)。通常你需要查詢的是全文职辨,而不是獨立的詞條盗蟆,而這個
工作通過高級的全文查詢來完成會更加容易(在內部它們最終還是使用的基于詞條的低級查詢)。

match查詢

先來個例子入門說明match查詢的步驟:

{
    "match" : {
        "message" : "BOY"
    }
}

Elasticsearch通過執(zhí)行下面的步驟執(zhí)行match查詢:

  1. 檢查field類型
    ? ? ? ?message字段是一個字符串(analyzed),所以該查詢字符串也需要被分析(analysis)
  2. 分析查詢字符串
    ? ? ? ?查詢詞boy舒裤。因為我們只有一個查詢詞喳资,因此match查詢可以以一種低級別的term查詢的方式執(zhí)行。
  3. 找到匹配的文檔
    ? ? ? ?term查詢在倒排索引中搜索boy,并且返回包含該詞的文檔腾供。
  4. 為每個文檔打分
    ? ? ? ?term查詢綜合考慮詞頻(每篇文檔message字段包含boy的次數(shù))仆邓、逆文檔頻率(在全部文檔中message字段boy的次數(shù))、包含boy的字段長度(長度越短越相關)來計算每篇文檔的相關性得分_score伴鳖。

參考

<a >TF-IDF與余弦相似性的應用:阮一峰</a>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末节值,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子榜聂,更是在濱河造成了極大的恐慌察署,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件峻汉,死亡現(xiàn)場離奇詭異贴汪,居然都是意外死亡脐往,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門扳埂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來业簿,“玉大人,你說我怎么就攤上這事阳懂∶酚龋” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵岩调,是天一觀的道長巷燥。 經常有香客問我,道長号枕,這世上最難降的妖魔是什么缰揪? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮葱淳,結果婚禮上钝腺,老公的妹妹穿的比我還像新娘。我一直安慰自己赞厕,他們只是感情好艳狐,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著皿桑,像睡著了一般毫目。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诲侮,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天蒜茴,我揣著相機與錄音,去河邊找鬼浆西。 笑死粉私,一個胖子當著我的面吹牛,可吹牛的內容都是我干的近零。 我是一名探鬼主播诺核,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼久信!你這毒婦竟也來了窖杀?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤裙士,失蹤者是張志新(化名)和其女友劉穎入客,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡桌硫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年夭咬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铆隘。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡卓舵,死狀恐怖,靈堂內的尸體忽然破棺而出膀钠,到底是詐尸還是另有隱情掏湾,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布肿嘲,位于F島的核電站融击,受9級特大地震影響,放射性物質發(fā)生泄漏雳窟。R本人自食惡果不足惜尊浪,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涩拙。 院中可真熱鬧际长,春花似錦耸采、人聲如沸兴泥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搓彻。三九已至,卻和暖如春嘱朽,著一層夾襖步出監(jiān)牢的瞬間旭贬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工搪泳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稀轨,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓岸军,卻偏偏與公主長得像奋刽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子艰赞,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內容