当前位置:   article > 正文

Elasticsearch中word文本文件的存入与全文检索_elasticsearch java存word文件

elasticsearch java存word文件

 需要提前打开elasticsearch,在所下载elasticsearch文件夹的bin里的window运行程序

  1. from docx import Document
  2. from elasticsearch import Elasticsearch
  3. import os
  4. import re
  1. #######读取文本文档
  2. def read_word_file(file_path):
  3. doc = Document(file_path)
  4. full_text = []
  5. for para in doc.paragraphs:
  6. full_text.append(para.text)
  7. return '\n'.join(full_text)
  8. def connect_to_elasticsearch(hosts):
  9. es = Elasticsearch(hosts=hosts)
  10. return es
  11. def index_word_content(es, index_name, document_id, content, name):
  12. doc = {
  13. 'content': content,
  14. 'name': name,
  15. }
  16. # 可以添加其他字段,比如标题、作者、创建日期等
  17. response = es.index(index=index_name, id=document_id, body=doc)
  18. return response
  19. def main(word_file_path, es_hosts, index_name, document_id):
  20. # 读取Word文件内容
  21. content = read_word_file(word_file_path)
  22. # 连接到Elasticsearch
  23. es = connect_to_elasticsearch(es_hosts)
  24. # 确保索引存在,如果不存在则创建它
  25. if not es.indices.exists(index=index_name):
  26. es.indices.create(index=index_name)
  27. # 将内容索引到Elasticsearch
  28. response = index_word_content(es, index_name, document_id, content, name)
  29. print(response)
  1. ##########执行函数存入Elasticsearch
  2. word_file_path = 'D:\\lawText\\法规文本0324\\9804山东省水利工程建设质量与安全生产监督检查办法(试行)-2019.docx'
  3. es_hosts = ['http://localhost:9200'] # 根据你的Elasticsearch配置进行调整
  4. index_name = 'word_documents' # 你希望内容被索引到的索引名
  5. document_id = '9804' # 为这份文档选择的唯一ID
  6. name='9804山东省水利工程建设质量与安全生产监督检查办法(试行)-20196'
  7. # 执行主函数
  8. main(word_file_path, es_hosts, index_name, document_id)
  1. ##########检索索引为word_documents的全部
  2. body={
  3. "query" : {
  4. "match_all" : {}
  5. }
  6. }
  7. es.search(index="word_documents", body=body)

搜索全文 

根据content字段相关性搜索 

  1. ##########按照content内容的相关性搜索,size": 可以设置出现的文档数量
  2. body={
  3. "size": 1,
  4. "query" : {
  5. "match" : {
  6. "content" : "机关、团体、企业、事业等单位,应当加强对本单位人员的消防宣传教育。"
  7. }
  8. }
  9. }
  10. result=es.search(index="word_documents", body=body)

  1. ##########获取里面字段信息
  2. _id = result['hits']['hits'][0]['_id']
  3. _id

 

  1. name= result['hits']['hits'][0]["_source"]['name']
  2. name

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/675252
推荐阅读
相关标签
  

闽ICP备14008679号