中文分詞+全文搜索
本文假設你已經搭建好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
下載及環境安裝
https://www.elastic.co/cn/downloads/elasticsearch
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/104904.html
標籤:Java
