1. 程式人生 > >40.倒排索引核心原理

40.倒排索引核心原理

提升 兩個 知識點 初步 blog 微軟雅黑 spa word ttl

主要知識點

倒排索引核心原理:normalization

假設有兩個文檔,內容如下

doc1I really liked my small dogs, and I think my mom also liked them.

doc2He never liked any dogs, so I hope that my mom will not expect me to liked him.

1、初步分詞,只是確定該詞是否在文檔中存在,不做其他處理

word doc1 doc2

I * *

really * *

my * *

small *

dogs *

and *

mom * *

also *

them *

He *

any *

so *

hope *

that *

will *

not *

me *

to *

him *

接下下搜索"mother like little dog",發現沒有結果,doc1,doc2 都沒有被搜索出來,原因如下:"mother like little dog",分詞後的詞為 motherlikelittledog。doc1和doc2均不含有這四個詞,所以搜索不出來結果,

二、normalization

按常規來說,對於上述搜索es是應該出來結果的,因為mothermom是同義詞,likeliked只是時態不同,littlesmall是同義詞,dogdogs是單復數形式不同。可以發現如果僅僅這樣建立是否存在的索引,而不做其他處理的話是沒有多大用處的,所以在es內部,在建立倒排索引的會進行normalization, es對content的處理tokenization和normalization稱為analysis過程。ES有很多種內置的analyzer來處理這些。normalization處理過程會在建立倒排索引的時候執行進一步的操作,對拆分出的各個單詞進行相應的處理(包括但不限於時態的轉換,單復數的轉換,同義詞的轉換,大小寫的轉換等)以提升後面搜索的時候能夠搜索到相關聯的文檔的概率。經過normalization處理後就可以搜索出正確的結果。

40.倒排索引核心原理