ElasticSearch在pdf文档中搜索内容

时间:2020-10-21 15:49:54

标签: amazon-web-services elasticsearch amazon-lex

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

我对ElasticSearch的使用是有印象的,尽管我的研究遇到了障碍。我了解ElasticSearch可以为文档建立索引,但这似乎仅限于为实际文件建立索引以搜索与查询匹配的文件。我希望在PDF文档中找到实际内容,并尝试根据查询提取一些内容。这可能吗?

1 个答案:

答案 0 :(得分:0)

Elasticsearch无法直接为PDF编制索引。您可以提取PDF的文本,对其进行索引,然后照常进行查询。 Apache Tika“从上千种不同的文件类型(例如PPT,XLS和PDF)中检测并提取元数据和文本。”

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

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

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)
相关问题