如何进行Elasticsearch检索分类
这篇文章将为大家详细讲解有关如何进行Elasticsearch检索分类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网站空间、营销软件、网站建设、霍山网站维护、网站推广。
Elasticsearch中当我们设置Mapping(分词器、字段类型)完毕后,就可以按照设定的方式导入数据。
有了数据后,我们就需要对数据进行检索操作。
0、检索概览
检索子句的行为取决于查询应用于过滤(filter)上下文还是查询/分析(query)上下文。
过滤上下文——对应于结构化检索
1)核心回答的问题是:“这个文档是否符合这个查询条款?”
2)答案是简单的是或否,不计算分数。
3)过滤器上下文主要用于过滤结构化数据。类似于MySQL中判定某个字段是否存在:
例如:
时间戳字段:是否属于2015年或2016年?
状态字段:是否设置为“已发布”?
经常使用的过滤器将被Elasticsearch自动缓存,以加快性能。
分析上下文——对应于全文检索
1)核心回答了“本文档与此查询子句是否匹配?”的问题。
2)除了决定文档是否匹配之外,查询子句还会计算一个_score,表示文档与其他文档的匹配程度。
综合应用场景如下:
GET /_search { "query": { "bool": { "must": [ { "match": { "title": "Search" }}, { "match": { "content": "Elasticsearch" }} ], "filter": [ { "term": { "status": "published" }}, { "range": { "publish_date": { "gte": "2015-01-01" }}} ] } } }
以上检索,title中包含"Search”并且content中包含 “Elasticsearch”,status中精确匹配”published”,并且publish_date 大于“2015-01-01”的全部信息。
以下,以“脑图”的形式直观展示检索分类。
其中,3-7随着我开发深入再做更新。
关于如何进行Elasticsearch检索分类就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
文章名称:如何进行Elasticsearch检索分类
分享网址:http://pwwzsj.com/article/joicoe.html