例如,我现在正在搜索如下:
http://localhost:9200/posts/post/_search?q=content:%23sachin
Run Code Online (Sandbox Code Playgroud)
但是,我用'sachin'而不是'#sachin'获得所有结果.另外,我正在写一个正则表达式来获取术语数.方面看起来像这样:
"facets": {
"content": {
"terms": {
"field": "content",
"size": 1000,
"all_terms": false,
"regex": "#sachin",
"regex_flags": [
"DOTALL",
"CASE_INSENSITIVE"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
这不会返回任何值.我认为这与在正则表达式中转义'#'有关,但我不知道该怎么做.我试图逃避它\和\\,但没有奏效.谁可以在这方面帮助我?
小智 6
本文提供了有关如何使用自定义分析器保存#和@的信息:http: //www.fullscale.co/blog/2013/03/04/preserving_specific_characters_during_tokenizing_in_elasticsearch.html
curl -XPUT 'http://localhost:9200/twitter' -d '{
"settings" : {
"index" : {
"number_of_shards" : 1,
"number_of_replicas" : 1
},
"analysis" : {
"filter" : {
"tweet_filter" : {
"type" : "word_delimiter",
"type_table": ["# => ALPHA", "@ => ALPHA"]
}
},
"analyzer" : {
"tweet_analyzer" : {
"type" : "custom",
"tokenizer" : "whitespace",
"filter" : ["lowercase", "tweet_filter"]
}
}
}
},
"mappings" : {
"tweet" : {
"properties" : {
"msg" : {
"type" : "string",
"analyzer" : "tweet_analyzer"
}
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
这不涉及方面,但重新定义分析器中这些特殊字符的类型可能会有所帮助.
| 归档时间: |
|
| 查看次数: |
1470 次 |
| 最近记录: |