【问题标题】:Simple Elasticsearch PDF Text Search using german language使用德语进行简单的 Elasticsearch PDF 文本搜索
【发布时间】:2020-05-13 11:33:31
【问题描述】:

我可以处理/提取我的 PDF 文件中的文本,但我不太清楚我是否在正确的方式下将我的内容存储在 Elasticsearch 中。

我的 PDF 文本大部分是德语 - 带有“ö”、“ä”等字母。

为了存储内容的每个字符,我“转义”了必要的字符并将它们正确编码为 JSON,以便我可以存储它们。

例如:

我想存储以下 (PDF) 文本:

Öffentliche Verkehrsmittel. TestPath: C:\Windows\explorer.exe

我像这样转换并上传到 Elasticsearch:

{"text":"\\u00D6ffentliche Verkehrsmittel. TestPath: C:\\\\Windows\\\\explorer.exe"}

我的问题是:这样存储文档是否正确?

【问题讨论】:

  • 你用什么分析器来处理德语文本?
  • @Gagravarr 对不起。我还没有设置分析仪。我需要这样做吗?

标签: elasticsearch pdf ocr apache-tika


【解决方案1】:

Elasticsearch 提供了范围广泛的inbuilt language-specific analyzer,如果您要创建文本字段并存储数据,默认情况下会使用标准分析器。你改变如下:

{

    "mappings": {
        "properties": {
            "title.german" :{
                "type" :"text",
                "analyzer" : "german"
            }
        }
    }
}

您还可以使用 analyze API 在您的德语案例中检查语言分析器生成的令牌

{
    "text" : "Öffentliche",
    "analyzer" : "german"
}

并生成令牌

{
    "tokens": [
        {
            "token": "offentlich",
            "start_offset": 0,
            "end_offset": 11,
            "type": "<ALPHANUM>",
            "position": 0
        }
    ]
}

Ö 的令牌

{
    "text" : "Ö",
    "analyzer" : "german"
}

{
    "tokens": [
        {
            "token": "o",
            "start_offset": 0,
            "end_offset": 1,
            "type": "<ALPHANUM>",
            "position": 0
        }
    ]
}

注意:- 它已将其转换为纯文本,所以现在无论您搜索 Ö 还是 ö,它都会出现在搜索结果中,因为如果您使用相同的分析器在查询时应用匹配查询。

【讨论】:

  • 感谢您的回答。您能否还提供一个示例(通配符)搜索查询,让我搜索例如:ffent oder Öf*(我希望能够在整个文本中搜索并获得结果)。提前谢谢你
  • @BenjaminWeiss,当然,但是您在同一个问题中提出了两个不同的不相关问题,即使您当前的问题很大并且包含太多信息,我建议您再问一个通配符搜索问题和提供一些示例文件和预期文件,并将问题链接评论给我,如果你在接下来的 20 分钟内发布答案,我将发布答案:)
  • @BenjaminWeiss,我还编辑了你的问题,使其更准确和重点:),请快点,我想在睡觉前解决另一个问题:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
相关资源
最近更新 更多