【问题标题】:How do I index pdf document content in elastic search,?如何在弹性搜索中索引 pdf 文档内容?
【发布时间】:2017-02-28 23:19:56
【问题描述】:
I am trying to index documents (read Pdf for ex) into elastic search.
My objective is to search documents based on matching content string.
To extract the document content, I am using Apache Tika .
I am not sure how should i index the document content along with document meta-data.

以下是我能想到的选项:

  1. 我应该只添加一个数据类型为字符串的字段“内容”并将文档内容存储为字符串吗? (但不确定 它适用于大尺寸文档)

  2. 或者我应该将该字段设为二进制并在那里对文档内容进行编码。 (但它将无法搜索)

请指教。

【问题讨论】:

    标签: java elasticsearch full-text-search elasticsearch-plugin elasticsearch-2.0


    【解决方案1】:

    这完全取决于您是否可以将内容结构化。例如,如果您要存储发票(传入的 PDF 文件),您可以设置一些模式来查找公司名称、地址、项目、价格、增值税等,并以干净的 JSON 格式存储这些数据。搜索速度快,存储效率高。

    另一方面,您可能会存储一些随机内容(或者您不知道内容是什么)。在这种情况下,您应该将所有可以读入内容字符串的数据读取并“按原样”存储。您仍将获得全文搜索(按关键字和短语),但没有结构搜索或排序 (companyName=ABC)。

    在这两种情况下,我都会将初始二进制文件存储在文件系统的某个位置(如my-uid-string.pdf),并在需要时将其作为简单文件提供。我不喜欢将二进制数据存储在数据库中,尽管它们中的大多数都有能力这样做。

    【讨论】:

    • 我的用例是第二个,随机内容。我不知道特定文件会有什么,但如果它有一些文本,那么我想将它存储在弹性搜索中并可以根据这些文本进行搜索。即使是全文搜索,也需要将文档内容存储在弹性搜索中,这是我关心的问题。我应该如何存储文档内容?因为如果我将它存储为字符串,那么它可能对大文档有问题。
    • Elastic 可以存储大字符串,但不能在 Lucene 中建立索引。虽然,有一种机制可以自动将大字符串解释为一组短字符串。你可以在这里开始你的研究:stackoverflow.com/a/28831582/5848808 - 祝你好运!
    猜你喜欢
    • 2016-10-08
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 2015-09-05
    相关资源
    最近更新 更多