40.倒排索引核心原理
主要知識點
倒排索引核心原理:normalization
假設有兩個文檔,內容如下
doc1:I really liked my small dogs, and I think my mom also liked them.
doc2:He 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",分詞後的詞為 mother、like、little、dog。doc1和doc2均不含有這四個詞,所以搜索不出來結果,
二、normalization
按常規來說,對於上述搜索es是應該出來結果的,因為mother和mom是同義詞,like和liked只是時態不同,little和small是同義詞,dog和dogs是單復數形式不同。可以發現如果僅僅這樣建立是否存在的索引,而不做其他處理的話是沒有多大用處的,所以在es內部,在建立倒排索引的會進行normalization, es對content的處理tokenization和normalization稱為analysis過程。ES有很多種內置的analyzer來處理這些。normalization處理過程會在建立倒排索引的時候執行進一步的操作,對拆分出的各個單詞進行相應的處理(包括但不限於時態的轉換,單復數的轉換,同義詞的轉換,大小寫的轉換等)以提升後面搜索的時候能夠搜索到相關聯的文檔的概率。經過normalization處理後就可以搜索出正確的結果。
40.倒排索引核心原理