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.
以下是我能想到的选项:
我应该只添加一个字段“content”,其数据类型为String,只是将文档内容存储为字符串吗? (但不确定 它适用于大尺寸文件)
- 醇>
或者我应该将该字段设为二进制并在那里对文档内容进行编码。 (但它不会被搜索)
请告知。
答案 0 :(得分:1)
这完全取决于您是否可以构建内容。例如,如果您要存储发票(传入的PDF文件),您可以设置一些模式以查找公司名称,地址,项目,价格,增值税等,并将这些数据存储在干净的JSON表单中。搜索速度快,存储效率高。
另一方面,您可能存储了一些随机内容(或者您不知道内容是什么)。在这种情况下,您应该只读取您可以读入内容字符串的所有数据并“按原样”存储它。您仍然可以通过关键字和短语进行全文搜索,但不进行结构搜索或排序(companyName=ABC
)。
在这两种情况下,我都会将初始二进制文件存储在文件系统的某个位置(如my-uid-string.pdf
),并在需要时将其作为简单文件提供。我不想将二进制数据存储在数据库中,即使它们中的大多数都有能力这样做。