对Elasticsearch中的多语言文本字段进行标记

时间:2016-03-24 21:20:13

标签: elasticsearch

我有下表,其中包含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。(不需要搜索操作,仅用于评分)
  3. 问)如果Elasticsearch在这种情况下是一个不错的选择,有人可以建议我吗?

    P.S。我正在寻找与Apache Spark兼容的东西。

1 个答案:

答案 0 :(得分:0)

在索引

时,在doc_text字段中包含语言代码
{ "doc_id": "doc", "doc_text_en": "xxx", "doc_lang": "en"}

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

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