中文分詞+全文搜索
本文假設你已經搭建好elasticsearch服務器,並在上面裝了kibana和IK中文分詞組件
elasticsearch+kibana+ik的安裝,之前的文章有介紹,可參考。
mapping介紹:定義索引(index)類型(type)的元數據,包括:數據類型、分詞行爲、建立倒排索引行爲、搜索行爲等。在搜索的時候會根據這個mapping定義的分詞行爲、搜索行爲進行搜索。
1、創建索引
1 PUT news
2、創建mapping
1 POST news/new/_mapping 2 { 3 "new": 4 { 5 "properties": 6 { 7 "title": 8 { 9 "type": "text", 10 "fields": { 11 "keyword": 12 { 13 "type": "keyword", 14 "ignore_above": 256 15 } 16 } 17 }, 18 "content": 19 { 20 "type": "text", 21 "analyzer": "ik_max_word", 22 "search_analyzer": "ik_max_word" 23 } 24 } 25 } 26 }
有兩個字段:title和content
3、插入數據
1 PUT news/new/1 2 { 3 "title":"印度將因4大矛盾慘敗中國 1項曾使印度國母被殺", 4 "content":"一大堆最近中國和阿三鬧矛盾詞語,此處省略N字。。。" 5 }
1 PUT news/new/2 2 { 3 "title":"印度不要敬酒不喫喫罰酒滿嘴跑火車 想想1962年", 4 "content":"一大堆最近中國和阿三鬧矛盾詞語,此處省略N字。。。" 5 }
1 PUT news/new/3 2 { 3 "title":"莫迪就中印對峙發聲:靠“亞洲古老傳統”解決問題", 4 "content":"一大堆最近中國和阿三鬧矛盾詞語,此處省略N字。。。" 5 }
4、全文檢索+高亮顯示
全文檢索:
1 GET news/new/_search 2 { 3 "query" : 4 { 5 "match" : 6 { 7 "content" : "中國 印度 " 8 } 9 } 10 }
高亮顯示
1 GET news/new/_search 2 { 3 "query" : 4 { 5 "match" : 6 { 7 "content" : "中國 印度 " 8 } 9 } 10 , 11 "highlight": 12 { 13 "pre_tags" : ["<tag1>", "<tag2>"], 14 "post_tags" : ["</tag1>", "</tag2>"], 15 "fields" : { 16 "content" : {} 17 } 18 } 19 }
elasticsearc實例講解增刪改查
https://www.cnblogs.com/subendong/p/7295549.html
1、首先弄明白四個概念
elasticsearch | 關係型數據庫 |
index | 數據庫 |
type | 表 |
document | 行 |
field | 字段 |
如果剛一開始理解比較困難,那你就在心中默唸100遍,10遍也可以。。。
如果你做過面向對象開發,我覺得elasticsearch的這四個概念還是很好理解的。
需要重點說明的是document就是一個json格式的字符串,裏面包括N個字段。我們可以想象將面嚮對象語言裏面的一個對象序列化成json字符串。
關係型數據庫需要先建庫,再建表。elasticsearch不需要,在你新增的時候會根據你指定的index,type,document,field自動創建。當然先創建索引也是可以的。
好文學習自:https://www.cnblogs.com/subendong/p/7308647.html
下載及環境安裝