栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Elasticsearch自定义分析器,带有ngram并且在连字符上没有单词定界符

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Elasticsearch自定义分析器,带有ngram并且在连字符上没有单词定界符

您走在正确的道路上,但是,您还需要添加另一个利用

edge-ngram
令牌过滤器的分析器,以使“开头为”约束开始工作。您可以保留
ngram
用于“包含”给定单词的用于检查的字段,但是您需要
edge-ngram
检查用于“以”某些标记“开头”的字段。

PUT /sample{  "settings": {    "index.number_of_shards": 5,    "index.number_of_replicas": 0,    "analysis": {      "filter": {        "nGram_filter": {          "type": "nGram",          "min_gram": 2,          "max_gram": 20,          "token_chars": [ "letter", "digit"          ]        },        "edgenGram_filter": {          "type": "edgeNGram",          "min_gram": 2,          "max_gram": 20        }      },      "analyzer": {        "ngram_index_analyzer": {          "type": "custom",          "tokenizer": "keyword",          "filter": [ "lowercase", "nGram_filter"          ]        },        "edge_ngram_index_analyzer": {          "type": "custom",          "tokenizer": "keyword",          "filter": [ "lowercase", "edgenGram_filter"          ]        }      }    }  },  "mappings": {    "test": {      "properties": {        "name": {          "type": "string",          "fields": { "prefixes": {   "type": "string",   "analyzer": "edge_ngram_index_analyzer",   "search_analyzer": "standard" }, "substrings": {   "type": "string",   "analyzer": "ngram_index_analyzer",   "search_analyzer": "standard" }          }        }      }    }  }}

然后您的查询将变为(即搜索其

name
字段包含
play
或以开头的所有文档
magazine

POST /sample/test/_search{    "query": {        "bool": { "minimum_should_match": 1, "should": [     {"match": { "name.substrings": "play" }},     {"match": { "name.prefixes": "magazine" }} ]        }    }}

注意:请勿

wildcard
用于搜索子字符串,因为它会破坏群集的性能(此处和此处提供更多信息)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/406252.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号