【发布时间】:2015-07-29 15:22:56
【问题描述】:
我正在尝试替换字段中的特定字符串。所以我使用了自定义分析器和字符过滤器,就像the docs 中描述的那样,但它不起作用。
这是我的索引设置:
{
"settings": {
"analysis": {
"char_filter": {
"doule_colon_to_space": {
"type": "mapping",
"mappings": [ "::=> "]
}},
"analyzer": {
"my_analyzer": {
"type": "custom",
"char_filter": [ "doule_colon_to_space" ],
"tokenizer": "standard"
}}
}}}
应该用空格替换字段中的所有双冒号 (::)。
然后我更新我的映射以使用分析器:
{
"posts": {
"properties": {
"id": {
"type": "long"
},
"title": {
"type": "string",
"analyzer": "my_analyzer",
"fields": {
"simple": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}
然后我在索引中放了一个文档:
{
"id": 1,
"title": "Person::Bruce Wayne"
}
然后我测试分析器是否工作,但似乎不是 - 当我发送此 https://localhost:/first_test/_analyze?analyzer=my_analyzer&text=Person::Someone+Close 时,我收到了两个令牌 - “PersonSomeone”(一起)和“关闭”。我这样做对吗?也许我应该以某种方式逃离这个空间?我使用 Elasticsearch 1.3.4
【问题讨论】:
-
您是否希望标记为“Person”、“Someone”和“Close”?
-
@bittusarkar 是的,我愿意
标签: elasticsearch