【问题标题】:Tokenizing a multi-language text field in Elasticsearch在 Elasticsearch 中标记多语言文本字段
【发布时间】:2016-03-24 21:20:12
【问题描述】:

我有下表,其中包含数百万个 json 文件形式的文档数据:

 +-------+---------------------------------------+------------+
 | doc_id|           doc_text                    | doc_lang   |
 +-------+---------------------------------------+------------+
 |  doc1 | "first /resource X 'title' "          |    en      |
 |  doc2 | "<r>ressource 2 @titre en France"     |    Fr      |
 |  doc3 | "die Tür geöffnet?"                   |    ge      |
 |  doc4 | "$risorsa 4 <in> lingua italiana"     |    It      |
 |  ...  | " ........."                          |    ..      |
 |  ...  | "........."                           |    ..      |
 +-------+---------------------------------------+------------+

我需要做以下事情:

  1. 根据 doc_lang 字段中显示的文本语言(比如欧洲语言),使用适当的分析器(动态)对每个文档文本进行标记、过滤和停用词删除。
  2. 获取 doc_text 字段中每个术语的 TF 和 IDF。(无需搜索操作,仅用于评分)

问)如果在这种情况下 Elasticsearch 是一个不错的选择,有人能给我建议吗?

附:我正在寻找与 Apache Spark 兼容的东西。

【问题讨论】:

  • @kimchy ,如果你有时间,我需要你的帮助!

标签: elasticsearch


【解决方案1】:

索引时在 doc_text 字段中包含语言代码

{ "doc_id": "doc", "doc_text_en": "xxx", "doc_lang": "en"}

然后您将能够指定特定语言分析器的动态映射。

https://www.elastic.co/guide/en/elasticsearch/guide/current/custom-dynamic-mapping.html

【讨论】:

  • 你的意思是我应该为每种语言创建一个新列吗?
  • ES中没有列,每个文档可能有不同的字段集,这是ES的正常使用方式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 2013-06-08
  • 1970-01-01
  • 2015-03-05
  • 2013-10-31
  • 2012-03-16
  • 1970-01-01
相关资源
最近更新 更多