ES搜索引擎的简单使用

1.创建索引

C:\Users\DELL>curl -XPUT http://localhost:9200/qa/

2.创建type

http://localhost:9200/qa/_mapping/question

{


      "properties": {
        "title": {

          "analyzer": "ik_max_word",

          "type": "text"

        }

    }

}

ES设置mapping出错

3.插入数据

http://localhost:9200/qa/question/1

{
"title":"去哪里照X光?"
}

ES学习连接

4.使用crul命令插入ES中

C:\Users\DELL>curl -H "Content-Type: application/json" -XPOST localhost:9200/qa/
question/7 -d "{"""title""":"""hello"""}"
{"_index":"qa","_type":"question","_id":"7","_version":1,"result":"created","_sh
ards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}

新版本一定要添加-H,windows下面要用三个双引号。

Python错误解决方法

5.在cmd中插入一直遇到乱码问题,因此使用postman把代码转化成python命令

import http.client

conn = http.client.HTTPConnection("localhost")
payload = "{\r\n\"title\":\"去哪里照X光?\"\r\n}".encode('utf-8')
headers = {
    'URIEncoding': "UTF-8",
    'Content-Type': "application/json",
    'Cache-Control': "no-cache",
    'Postman-Token': "7223e318-04a7-4790-92b7-728214eb9585"
    }
conn.request("POST", "qa,question,10", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

这样就能够成功跑通。

Postman转Python的学习链接

6.使用postman,搜索索引和type下面的所有数据

import requests

url = "http://localhost:9200/qa/question/3"

payload = "{\r\n\"title\":\"去哪里照X光?\"\r\n}".encode('utf-8')
headers = {
    'URIEncoding': "UTF-8",
    'Content-Type': "application/json",
    'Cache-Control': "no-cache",
    'Postman-Token': "8c149885-5c1d-4c26-9ee8-7e9d089610b5"
    }

response = requests.request("PUT", url, data=payload, headers=headers)

print(response.text)

7.删除id为1的数据

8.使用ES做搜索

#-*-coding:utf8-*-
import requests
import json
import xlrd

data=xlrd.open_workbook("协和导诊问答测试结果对比.xls")
table=data.sheets()[0]
rows=table.nrows
for row in range(rows-1):
	text=table.row_values(row+1)[0]
	url = "http://localhost:9200/qa/question/_search?pretty&q=title:"+text
	# print(url)
	headers = {
		'URIEncoding': "UTF-8",
		'Content-Type': "application/json",
		'Cache-Control': "no-cache",
		'Postman-Token': "4bbfa686-e907-4e75-b4fe-e4a3cf3f66f4"
	}
	response = requests.request("GET", url, headers=headers)
	response = json.loads(response.text)
	# print(response["hits"]["hits"][0]["_source"]["title"])
	if len(response["hits"]["hits"])!=0:
		print(text+"|"+response["hits"]["hits"][0]["_source"]["title"])

猜你喜欢

转载自blog.csdn.net/baidu_15113429/article/details/81296519