ElasticSearch搜索pdf文档中的内容



我正在做一个利用AWS Lex chatbotElasticSearch的项目。我的目标是解析查询,以搜索单个pdf文档并提取一些相关信息。

我觉得ElasticSearch有可能做到这一点,尽管我的研究遇到了障碍。我知道ElasticSearch能够索引文档,但这似乎仅限于为搜索与查询匹配的文件而索引实际文件。我希望在PDF文档中获取实际内容,并尝试根据查询提取一些内容。这可能吗?

Elasticsearch无法直接索引PDF。您可以提取PDF的文本,对其进行索引,然后像往常一样进行查询。Apache Tika";从一千多种不同的文件类型(如PPT、XLS和PDF(中检测并提取元数据和文本">

您可以将Tika作为Docker容器运行:Docker tikaserver

要索引PDF,请将数据发送到Tika(例如,作为docker容器运行,可通过http://tika:9998),获取文本并对其进行索引:

doc = {...} # other content to index
try:
# open PDF and read contents into data
# send content to tika to extract text
doc["content"] = requests.put("http://tika:9998/tika", data=data).text
es.index(index="my-index", id=doc["id"], body=doc))
except Exception as e:
log.error("error extracting text: %s", e)

最新更新