实战 | Elasticsearch打造知识库检索系统

题记

源自“死磕Elasticsearch”技术群里的讨论问题:

——我想用es做个类似于知识库的东西,所以需要索引一些pdf、word之类的文件,这个你之前有试过吗?能给个方向吗?

我的思考如下:

1、pdf、Office类的文档如何被ES索引?

更确切的说,pdf、Office类文档(word,ppt,excel等)如何导入ES中。 如图所示:

问题转嫁为:如何将Office类文档、PDF文档导入ES建立索引,并提供全文检索服务?

2、Elasticsearch支持的最大待检索字段的长度是多大?

ES5.X版本以后,keyword支持的最大长度为32766个UTF-8字符,text对字符长度没有限制。 设置ignore_above后,超过给定长度后的数据将不被索引,无法通过term精确匹配检索返回结果。

参考:http://t.cn/RYlEMgn 参考6.0官网解读:http://t.cn/RYlELoV 参考luncene7.1API: http://t.cn/RYWvuGl

3、Office&pdf文档存入Elastisearch注意问题清单

少废话,直接上图。

4、解析实战代码

以上仅列举核心示例代码。

5、小结 从功能和性能角度考量,建立知识库的建议如下: 1)知识库的核心是数据导入ES,导入ES的核心是各种类型文档的解析; 2)提前设定Mapping,定义好字段分词、不分词的策略; 3)对于大于1MB一个字段的存储,建议使用fvh高亮方式,在Mapping中一并设置。

参考:

[1] Java读取Office文档参考:http://t.cn/RZsiHcY [2] Html2Md参考:http://t.cn/RYlEEoC [3] Pdf2Html参考:http://t.cn/zWgVuFv [4]OpenOffice参考:http://t.cn/8sGyKZd

原文发布于微信公众号 - 铭毅天下(gh_0475cf887cf7)

原文发表时间:2017-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT技术精选文摘

ElasticSearch详解与优化设计

1、简介 ElasticSearch(简称ES)是一个分布式、Restful的搜索及分析服务器,设计用于分布式计算;能够达到实时搜索,稳定,可靠,快速。和Apa...

5105
来自专栏杨建荣的学习笔记

sqlldr加载性能问题的排查 (r2第2天)

最近根据业务需要加载一批数据,在生产环境中不到半个小时就完了,可是到了测试环境,竟然跑了6个多小时,另外测试环境和生产环境的数据情况都基本差不多,主机配置也基本...

3285
来自专栏微信终端开发团队的专栏

微信移动端数据库组件 WCDB 系列:数据库修复三板斧(二)

之前一篇文章《微信 SQLite 数据库修复实践》介绍了微信对SQLite数据库修复以及降低损坏率的实践, 这次再深入介绍一下微信数据库修复的具体方案和发展历程...

5790
来自专栏数据和云

青铜到王者,看看你的MySQL数据库是什么段位,如何提升?

作者 | 张甦, 数据库领域的专家和知名人士、图书《MySQL王者晋级之路》作者,51CTO 专家博主。近10年互联网线上处理及培训经验,专注于 MySQL 数...

2144
来自专栏Spark学习技巧

Flink:动态表上的连续查询

越来越多的公司在采用流处理技术,并将现有的批处理应用程序迁移到流处理或者为新的应用设计流处理方案。其中许多应用程序专注于分析流数据。分析的数据流来源广泛,如数据...

1963
来自专栏CSDN技术头条

PostgreSQL并行查询是个什么“鬼"?

【导语】2016年4月,PostgreSQL社区发布了PostgreSQL 9.6 Beta 1,迎来了并行查询(Parallel Query)这个新特性。在追...

6855
来自专栏杨建荣的学习笔记

一个简单的bigfile tablespace无法扩展的案例处理 (r8笔记第31天)

最近帮助开发的同学处理了一个简单的问题,想通过这个问题来反思一下。 在一天下午的时候,开发的同事突然找到我说,有一个开发的数据库貌似有些表空间的问题,...

2897
来自专栏杨建荣的学习笔记

增量数据丢失的原因分析(三)(r8笔记第91天)

今天开发的同事找到我说,他们发现一个应用今天应该会同步过来一部分数据,但是今天却没有,所以想让我帮忙看看到底是怎么回事。 对于这类需求也算是轻门熟路,不光维护管...

3574
来自专栏腾讯技术工程官方号的专栏

PGXZ 腾讯分布式关系数据集群—架构解析

本文作者:数据平台部存储引擎组PGXZ项目负责人,2013年从华为加入腾讯,从事数据库和存储相关的工作。多年来一直致力于数据库引擎的研究和开发,从事过多款数据库...

34811
来自专栏linux驱动个人学习

V4L2 driver -整体架构

熟悉v4l2用户空间编程的都知道, v4l2编程主要是调用一系列的ioctl函数去对v4l2设备进行打开, 关闭, 查询, 设置等操作. v4l2设备是一个字符...

9203

扫码关注云+社区

领取腾讯云代金券