@xlsd1996
2019-07-20T16:07:52.000000Z
字数 1045
阅读 693
流程:
1.利用docker来运行一个基础的elasticserarch服务。
2.利用python 将已有的问答数据存入 es 数据库中。
3.利用python 完成对问答数据的查询.
讲解:
利用docker来完成es的快速搭建是最方便的,而且了解一下docker很有好处。当然前提是你有一个可以操作的linux系统 ,并且上面 安装了docker 服务。
相关资料:
1.随手找的docker基础资料,稍微看一下 教程架构 ,容器使用部分, 知道docker的用处和几个基础指令就行。
2.利用docker来下载与运行一个 es 容器,可以参照 这个,顺利的话非常简单, 但是更加建议使用 这个 ,这里面包含了kibana,可以方便的在线查看和浏览 es中数据(需要的话自行查阅 docker-compose 的写法和用法)。
3.确认es服务顺利运行起来以后,利用python处理数据。
最后整理成的格式为dict类型,一个问答对是一个dict,可以是{'question':xxx,'answer':xxx}这样的。
4.利用python的elasticsearch包将数据存入es中(正式说法是建立索引),相关的api可以参照这里,参照官方文档更好。
5.利用python完成查询,可以大概参照以下代码,以下代码是利用content进行对数据的[ "post_title", "comment","post_content" ]
三个字段进行最相近文本的搜索:
from elasticsearch import Elasticsearch
es = Elasticsearch(hosts='192.168.126.110')
def es_search_by_content(content,num=10):
rst = es.search(
index='comment-all',
body={"query":{"multi_match" : {
"query": content,
"fields": [ "post_title", "comment","post_content" ]
}}},
size=num)['hits']
total = rst['total']
hits = rst['hits']
res = [item['_source'] for item in hits]
return res
if(__name__=='__main__'):
print(es_search_by_content("沃顿不行啊,不适合现在的湖人了"))