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

Elasticsearch:如果查询在索引数组中至少包含一项中的所有单词,如何只返回文本搜索查询的结果?

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

Elasticsearch:如果查询在索引数组中至少包含一项中的所有单词,如何只返回文本搜索查询的结果?

这可以通过以下设置来实现。

POST your_index{  "settings": {    "analysis": {      "analyzer": {        "keyword_analyzer": {          "type": "custom",          "filter": [ "lowercase"          ],          "tokenizer": "keyword"        },        "shingle_analyzer":{          "type" : "custom",          "filter" :["lowercase","shingle_filter"],          "tokenizer" : "standard"        }      },      "filter": {        "shingle_filter": {          "type": "shingle",          "min_shingle_size": 2,          "max_shingle_size": 5        }      }    }  },  "mappings": {    "your_type": {      "properties": {        "keywords": {          "type": "string",          "index_analyzer": "keyword_analyzer",          "search_analyzer": "shingle_analyzer"        }      }    }  }}

在这里,由于需求

analyzers
,我使用了两种不同的方法,一种用于
indexing
和一种用于
searching
keyword_analyzer
需要按原样索引该词,以便对
经理的 查询不会与 饭店经理
一起返回文档。有关关键字分析器的更多信息。现在,搜索需要带状滤波器以
phrases
从输入文本生成。像 This restaurant manager那样的
文本将被分成 This restaurantrestaurant managermanager is
等等,您将获得期望的结果。您可以使用分析API来查看分析器的工作方式。


您可以像这样索引文档

PUT your_index/your_type/1{  "keywords": ["restaurant manager", "chef", "bus boy"]}

这种类型的查询将为您提供文件

GET your_index/_search{  "query": {    "match": {      "keywords": "This restaurant manager is also a good chef"    }  }}

希望这可以帮助!



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

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

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