上面,我们首先创建了一个自定义分析器custom_edge_ngram_analyzer,并传递给它类型为 edge_ngram 的自定义分词器 customized_edge_tokenizer。 Edge_ngram 分词器可以使用以下参数进行定制: min_gram ⇒ 放入 gram 中的最小字符数,默认为 1,类似于上面看到的 uni-gram 示例 max_gram ⇒ 放入 gram 中的最...
edge_ngram和ngram是elasticsearch内置的两个tokenizer和filter 实例 步骤 自定义两个分析器edge_ngram_analyzer和ngram_analyzer 进行分词测试 创建测试索引 PUTanalyzer_test { "settings": { "refresh_interval":"1s", "index": { "max_ngram_diff":10 }, "analysis": { "analyzer": { "edge_ngram_an...
edge_ngram和ngram是ElasticSearch自带的两个分词器,一般设置索引映射的时候都会用到,设置完步长之后,就可以直接给解析器analyzer的tokenizer赋值使用。 场景 用Elasticsearch 处理通配符查询不太适合,推荐用分词器 NGram,这个分词器可以让通配符查询和普通的查询一样迅速,因为该分词器在数据索引阶段就把所有工作做完了 示...
{"settings": {"analysis": {"analyzer": {"my_analyzer": {"tokenizer": "my_tokenizer"} },"tokenizer": {"my_tokenizer": {"type": "edge_ngram","min_gram": 2,"max_gram": 10,"token_chars": ["letter","digit"] } } } } } POST my_index/_analyze {"analyzer": "my_analyzer",...
1,定义一个索引,并指定分词器ngram; 代码语言:javascript 复制 PUTdb_content_testserver2{"settings":{"analysis":{"analyzer":{"ngram_analyzer":{"tokenizer":"ngram_tokenizer"}},"tokenizer":{"ngram_tokenizer":{"type":"ngram","min_gram":1,"max_gram":5,"token_chars":["letter","digit"]...
},# 这里使用分词策略"analysis": {"analyzer": {"my_analyzer": {# 这里分词指定下面策略的具体配置的名称"tokenizer":"my_tokenizer",# 这里忽略大小写配置"filter": ["lowercase"] } },# 具体策略配置"tokenizer": {"my_tokenizer": {"type":"ngram","min_gram": 1,"max_gram": 2,"token_cha...
"analyzer": "ngram_analyzer" } } } } } 当某个字段的 analyzer 被指定为 ngram_analyzer,这个字段的查询就都会变成通配符查询,无论是 term 还是 match。 比如,POST /index/type { "query": { "term": {"Name": "工商"} } } 会得到"中国工商银行XXX分行"。
但是,有时在搜索时使用其他分析器是有意义的,例如,使用edge_ngramtokenizer 实现自动完成功能或使用搜索时同义词时。 默认情况下,查询将使用在字段映射中定义的分析器,但是可以使用 search_analyzer 设置将其覆盖。 N-grams Ngrams 和 edge ngrams 是在 Elasticsearch 中标记文本的两种更独特的方式。 Ngrams 是一...
"analyzer":{ "ngram_analyzer":{ "tokenizer":"ngram_tokenizer" } }, "tokenizer":{ "ngram_tokenizer":{ "token_chars":[ "letter", "digit", "punctuation" ], "type":"ngram", "max_gram":"1" } } } } 4、添加别名或删除别名:POST /_aliases 或 PUT /index/_alias/name ,如:(remove...
"analyzer":"ngram_analyzer" }, "updateTime":{ "type":"date" }, "revision":{ "type":"long" }, "createTime":{ "type":"date" }, "fileSize":{ "type":"long" }, "updaterName":{ "type":"text" }, "_class":{ "type":"keyword" ...