搜索引擎是什么?
搜索引擎是個整體技術(shù),是一系列檢索服務(wù)。百度是全文檢索(更注重文字的搜索)服務(wù)。像京東的商品是垂直型搜索引擎。
es是什么?
Elastic Search 在搜索引擎中是一個分布式索引庫,nosql。有點(diǎn)像是程序中的mysql。對外提供檢索服務(wù),http或者transport協(xié)議對外提供搜索,restful的json。對內(nèi)就是數(shù)據(jù)庫。
Es名詞定義:
索引? ?就是數(shù)據(jù)庫但是不能叫數(shù)據(jù)庫。
類型(type) ≈表? ex6.x 只有一個type,,之前可以建很多。es7.x就沒有這個type了。
文檔=行數(shù)據(jù)document 。
filed? = column
缺點(diǎn):nosql 非關(guān)系型的,沒辦法鏈接查詢,就是跨索引查詢(有點(diǎn)像mysql的跨表)。
在es中我們經(jīng)常聽到這些名詞,現(xiàn)在拿這些名詞和關(guān)系型數(shù)據(jù)庫做對比:

分詞:
NLP:自然語言處理。
搜索是以詞為單位。?
倒排索引:
就是我們的value 對應(yīng)key, 因?yàn)闆]辦法通過一個value確定我們的key所以返回的結(jié)果可能是多個,這就是倒排索引和正排索引的最大區(qū)別。
正向索引:
類似我們的hashmap,比如十篇文檔,我們的1,2,3(類似我們的id)通過id找到value,
Doc: 1? ->content
Doc: 1? ->content、
TF-IDF :
TF:詞頻,一篇文章包含多了少這個詞,包含越多說明跟這個詞越相關(guān)。(例如: my name is zhaoxiaoyun? zhaoxiaoyun。? ? zhaoxiaoyun就是最相關(guān)的)
DF:文檔詞頻,包含這個詞的文檔總數(shù)。
IDF:逆文檔,1/df? 如果這個詞包含的越少,就是df越小說明這個詞對這個文檔的重要性就越大,比如1/1只有一個文檔出現(xiàn)了。
TFIDF:TF*IDF? ?數(shù)字越大說明這個文檔和這個搜索的詞關(guān)系越大, 比如一個文檔出現(xiàn)了3次aa,只有一個文檔有aa ,3*三分之一。 通過這個結(jié)果判斷順序。
Es:打分排序:BM25算法 里面有個? tfNom,有很多規(guī)則。