如何在elasticsearch中用字符分隔的映射文本?

时间:2014-10-06 14:11:10

标签: string filter elasticsearch mapping

我想为字符串创建一个映射,以便仅分析"分隔的字符串:"。

例如我的字符串" ANTENAS:Man#47:Man#20",我想只分析由"分隔的确切文本:" - > " ANTENAS","男人#47","男人#20"

非常感谢! pd.in elasticsearch中的新手

1 个答案:

答案 0 :(得分:0)

在您对该索引和类型的映射中,您需要创建一个自定义标记生成器,该标记生成器应该能够根据"标记您的字段值:"因为这样的字符会被标准分析器丢弃。

因此,对于名为" name":

的字段,映射应该如下所示
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_dash_analyzer": {
          "type" : "custom",
          "tokenizer" : "my_custom_tokenizer"
        }
      },
      "tokenizer": {
        "my_custom_tokenizer":{
          "type": "pattern",
          "pattern": ":"
        }
      }
    }
  },
  "mappings": {
    "publication": {
      "properties": {
        "name": {
          "type": "string",
          "analyzer": "my_dash_analyzer"
        }
      }
    }
  }
}