赞
踩
需要提前打开elasticsearch,在所下载elasticsearch文件夹的bin里的window运行程序
- from docx import Document
- from elasticsearch import Elasticsearch
- import os
- import re
- #######读取文本文档
- def read_word_file(file_path):
- doc = Document(file_path)
- full_text = []
- for para in doc.paragraphs:
- full_text.append(para.text)
- return '\n'.join(full_text)
- def connect_to_elasticsearch(hosts):
- es = Elasticsearch(hosts=hosts)
- return es
- def index_word_content(es, index_name, document_id, content, name):
- doc = {
- 'content': content,
- 'name': name,
- }
- # 可以添加其他字段,比如标题、作者、创建日期等
- response = es.index(index=index_name, id=document_id, body=doc)
- return response
- def main(word_file_path, es_hosts, index_name, document_id):
- # 读取Word文件内容
- content = read_word_file(word_file_path)
-
- # 连接到Elasticsearch
- es = connect_to_elasticsearch(es_hosts)
-
- # 确保索引存在,如果不存在则创建它
- if not es.indices.exists(index=index_name):
- es.indices.create(index=index_name)
-
- # 将内容索引到Elasticsearch
- response = index_word_content(es, index_name, document_id, content, name)
- print(response)
- ##########执行函数存入Elasticsearch
- word_file_path = 'D:\\lawText\\法规文本0324\\9804山东省水利工程建设质量与安全生产监督检查办法(试行)-2019.docx'
- es_hosts = ['http://localhost:9200'] # 根据你的Elasticsearch配置进行调整
- index_name = 'word_documents' # 你希望内容被索引到的索引名
- document_id = '9804' # 为这份文档选择的唯一ID
- name='9804山东省水利工程建设质量与安全生产监督检查办法(试行)-20196'
- # 执行主函数
- main(word_file_path, es_hosts, index_name, document_id)
- ##########检索索引为word_documents的全部
- body={
- "query" : {
- "match_all" : {}
- }
- }
- es.search(index="word_documents", body=body)
搜索全文
根据content字段相关性搜索
- ##########按照content内容的相关性搜索,size": 可以设置出现的文档数量
- body={
- "size": 1,
- "query" : {
- "match" : {
- "content" : "机关、团体、企业、事业等单位,应当加强对本单位人员的消防宣传教育。"
- }
- }
- }
- result=es.search(index="word_documents", body=body)
- ##########获取里面字段信息
- _id = result['hits']['hits'][0]['_id']
- _id
- name= result['hits']['hits'][0]["_source"]['name']
- name
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。