Elasticsearch 和 word_delimiter 令牌过滤器
Elasticsearch and word_delimiter token filter
我一直在阅读来自 elasticsearch 的文档:
https://www.elastic.co/guide/en/elasticsearch/reference/1.7/analysis-word-delimiter-tokenfilter.html
同时也在网上搜索例子。
不幸的是,不仅有几个例子,其中大部分都不起作用。
如果有人可以 post 或提供有关如何在 elasticsearch 中使用 word_delimeter 令牌过滤器的示例,我将不胜感激。
谢谢。
弹性版本 - 5.2
尝试以下映射
PUT demo
{
"settings": {
"analysis": {
"analyzer": {
"index_analyzer_v1" : {
"tokenizer" : "whitespace",
"filter" : [ "word_delimeter"]
}
},
"filter": {
"ngram_filter" : {
"type" : "nGram",
"min_gram": 1,
"max_gram": 10,
"token_chars": [
"letter",
"digit"
]
},
"word_delimeter" : {
"type" : "word_delimiter",
"generate_number_parts" : true,
"catenate_words" : true,
"catenate_numbers": true,
"preserve_original" : true,
"stem_english_possessive": true
},
"stop_words" : {
"type": "stop",
"stopwords": ["and", "is", "the", "we", "in", "are", "was", "were", "of"]
}
}
}
},
"mappings": {
"product": {
"dynamic": "strict",
"properties": {
"name": {
"type": "text",
"analyzer": "index_analyzer_v1"
}
}
}
}
}
索引以下文档
POST demo/product
{
"name":"SH-09"
}
运行下面查询
POST demo/_search
{
"query": {"bool": {"must": [
{"term": {
"name": {
"value": "09"
}
}}
]}}
}
进一步如果你想查看存储在倒排索引中的值,运行下面的查询
GET demo/_analyze?analyzer=index_analyzer_v1&text=SH-09
希望对您有所帮助
我知道这个问题很老了,但无论如何......
我不能发表评论,因为我没有声望点,但是如果你尝试搜索“每个人”,上面的答案中没有“-”,如果你想在“每个人”中搜索“正文”,也许一个简单的通配符会有所帮助你。
https://www.elastic.co/guide/en/elasticsearch/reference/6.8/query-dsl-wildcard-query.html
希望有用
我一直在阅读来自 elasticsearch 的文档: https://www.elastic.co/guide/en/elasticsearch/reference/1.7/analysis-word-delimiter-tokenfilter.html
同时也在网上搜索例子。 不幸的是,不仅有几个例子,其中大部分都不起作用。
如果有人可以 post 或提供有关如何在 elasticsearch 中使用 word_delimeter 令牌过滤器的示例,我将不胜感激。
谢谢。
弹性版本 - 5.2
尝试以下映射
PUT demo
{
"settings": {
"analysis": {
"analyzer": {
"index_analyzer_v1" : {
"tokenizer" : "whitespace",
"filter" : [ "word_delimeter"]
}
},
"filter": {
"ngram_filter" : {
"type" : "nGram",
"min_gram": 1,
"max_gram": 10,
"token_chars": [
"letter",
"digit"
]
},
"word_delimeter" : {
"type" : "word_delimiter",
"generate_number_parts" : true,
"catenate_words" : true,
"catenate_numbers": true,
"preserve_original" : true,
"stem_english_possessive": true
},
"stop_words" : {
"type": "stop",
"stopwords": ["and", "is", "the", "we", "in", "are", "was", "were", "of"]
}
}
}
},
"mappings": {
"product": {
"dynamic": "strict",
"properties": {
"name": {
"type": "text",
"analyzer": "index_analyzer_v1"
}
}
}
}
}
索引以下文档
POST demo/product
{
"name":"SH-09"
}
运行下面查询
POST demo/_search
{
"query": {"bool": {"must": [
{"term": {
"name": {
"value": "09"
}
}}
]}}
}
进一步如果你想查看存储在倒排索引中的值,运行下面的查询
GET demo/_analyze?analyzer=index_analyzer_v1&text=SH-09
希望对您有所帮助
我知道这个问题很老了,但无论如何...... 我不能发表评论,因为我没有声望点,但是如果你尝试搜索“每个人”,上面的答案中没有“-”,如果你想在“每个人”中搜索“正文”,也许一个简单的通配符会有所帮助你。 https://www.elastic.co/guide/en/elasticsearch/reference/6.8/query-dsl-wildcard-query.html
希望有用