有没有办法将采集附件插件与 Elastic App Search 一起使用

有没有办法将采集附件插件与 Elastic App Search 一起使用

我正在开发一个门户网站,它托管多种类型的文档(HTML、PDF、PPTx、DocX),并使其都可以在一个地方进行搜索。

我们可以使用“标准”开箱即用的 ElasticSearch 和 Ingest Attachment 插件来实现这一点,但我不是数据科学家,对编写 Elastic 查询知之甚少,所以我们的搜索结果不是很好。

有人建议我使用企业应用搜索,而不是尝试调整基本查询,但似乎无法使用提取附件插件?因此,我无法简单地将 base64 编码的内容发送到文档 API 并期望内容被编入索引。

有什么办法可以解决这个问题吗?或者说我不能使用 App Search 来解决这个问题?

答案1

答案是,按照建议利用附件管道提取附件内容在这篇博文中或者,如果你的后端像我一样使用 Java,你可以使用阿帕奇蒂卡自己从附件中提取内容。

我实现了 Tika 来提取 HTML 内容(实际上非​​常简单)

static String getContent(String htmlContent) throws TikaException, SAXException, IOException {
    InputStream input = new ByteArrayInputStream(htmlContent.getBytes());
    ContentHandler handler = new BodyContentHandler();
    Metadata metadata = new Metadata();
    new HtmlParser().parse(input, handler, metadata, new ParseContext());
    return handler.toString();
}

对于 PDF 文件,我已经使用 Apache PdfBox 提取一些其他属性,因此文本是“免费的”。对于 Office 文件也是如此,但这需要 Apache Poi。

相关内容