文/大大大大峰哥
下載工具
- ElasticSearch5.5.0 https://www.elastic.co/downloads/elasticsearch
- Kibana https://www.elastic.co/downloads/kibana
配置環(huán)境
- MacOS
- Windows
配置步驟
- 將ElasticSearch與Kibana解壓完成,并且進(jìn)入各自的bin文件分別啟動elasticsearch與kibana.
- 根據(jù)啟動kibana終端的信息提示,進(jìn)入Kibana.
- 進(jìn)入Kibana中的Dev Tools中的Console,開始寫mapping.這里的analyzer原本應(yīng)該寫standard,但是我們安裝了中文分詞器.
PUT /legal_document
{
"mappings": {
"article":{
"properties": {
"title":{
"type":"text"
, "analyzer": "ik_smart"
, "search_analyzer": "ik_smart"
},
"content":{
"type": "text"
, "analyzer": "ik_smart"
, "search_analyzer": "ik_smart"
}
}
}
}
}
4.使用python將所有的法律文本寫入elasticSearch中,并讓它生成檢索.
# -*- coding:utf-8 -*-
from elasticsearch import Elasticsearch
import os
# 這里的path對應(yīng)法律文本的路徑
path = "C:/Users/Administrator/Desktop/20170713王寧抓取法律文本"
es = Elasticsearch()
files = os.listdir(path)
number = 1
for file in files:
if not os.path.isdir(file):
f = open(path + "/" + file, encoding="gb18030")
iter_f = iter(f)
str = ""
for line in iter_f:
str = str + line
es.index(index="legal_document", doc_type="article", body={"title": file, "content": str})
print('開始導(dǎo)入第')
print(number)
print("條\n")
number += 1
5.使用python進(jìn)行搜索并高亮目標(biāo)
from elasticsearch import Elasticsearch
es = Elasticsearch()
search_field = input("請輸入查詢字段名:")
search = es.search(
index='legal_document',
doc_type='article',
body={
"query": {
"match": {
"content": search_field
}
},
"highlight": {
"fields": {
"content": {}
}
}
}
)
print(search)
安裝分詞器
https://github.com/medcl/elasticsearch-analysis-ik/
git clone https://github.com/medcl/elasticsearch-analysis-ik
cd elasticsearch-analysis-ik
git checkout tags/{version}
mvn clean
mvn compile
mvn package
其他問題
分詞器有兩種模式,我們需要找到自己最需要的模式進(jìn)行分詞處理.
- ik_max_word: 會將文本做最細(xì)粒度的拆分奕剃,比如會將“中華人民共和國國歌”拆分為“中華人民共和國,中華人民,中華,華人,人民共和國,人民,人,民,共和國,共和,和,國國,國歌”,會窮盡各種可能的組合桩撮;
- ik_smart: 會做最粗粒度的拆分,比如會將“中華人民共和國國歌”拆分為“中華人民共和國,國歌”。