少废话,说正事。
一、高级检索的功能点
通过高级搜索配置搜索项,能更准确的过滤掉不相干信息,获取最想要的检索信息。
以Google搜索为例(截取核心片段):
二、高级检索拆分
1、包含以下全部的关键词:
需要分词处理;
若需要指定字段,则使用matchQuery实现;
若无需指定字段的全文检索,则使用queryStringQuery实现;
2、包含以下的完整关键词 :
需要完整匹配字符,使用wildcardQuery结合”*”实现;
3、包含以下任意一个关键词 :
空格分隔每个关键词,需要将多个词空格拆分,然后对每个关键词通过should结合wildcardQuery遍历实现;
4、不包括以下关键词 :
包含以下全部关键词的反面,
若需要指定字段,则使用must_not结合matchQuery实现;
若无需指定字段,则使用must_not结合queryStringQuery实现;
5、限定要搜索的网页的时间是:
限定搜索的开始和结束时间,通过rangequery实现。
6、关键词位置:
根据关键词位置的不同,采用不同的实现;
关键词位于title字段:指定title进行检索;
关键词位于content字段:指定content进行检索;
关键词位于全部字段:不指定字段进行检索,多使用 queryStringQuery实现。
三、DSL高级检索实现
POST detail_index/_search{ "from" : 0, "size" : 10, "query" : { "bool" : { "must" : [ { "match" : { "title" : { "query" : "苹果乔布斯", "operator" : "OR", "prefix_length" : 0, "max_expansions" : 50, "fuzzy_transpositions" : true, "lenient" : false, "zero_terms_query" : "NONE", "boost" : 1.0 } } }, { "wildcard" : { "title.keyword" : { "wildcard" : "*苹果总裁库克*", "boost" : 1.0 } } }, { "range" : { "public_time" : { "from" : "2017-09-07 00:00:00", "to" : "2017-09-15 23:59:59", "include_lower" : true, "include_upper" : true, "boost" : 1.0 } } } ], "must_not" : [ { "wildcard" : { "title.keyword" : { "wildcard" : "*苹果梨*", "boost" : 1.0 } } } ], "should" : [ { "wildcard" : { "title.keyword" : { "wildcard" : "*苹果手机*", "boost" : 1.0 } } }, { "wildcard" : { "title.keyword" : { "wildcard" : "*iphoneX*", "boost" : 1.0 } } } ], "disable_coord" : false, "adjust_pure_negative" : true, "boost" : 1.0 } }, "_source" : { "includes" : [ "title", "content" ], "excludes" : [ ] }, "highlight" : { "pre_tags" : [ "<span style=\"color:red\">" ], "post_tags" : [ "</span>" ], "fragment_size" : 100, "number_of_fragments" : 5, "require_field_match" : true, "fields" : { "title" : { } } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
以上DSL对应如下:
四、小结
Elasticsearch检索中的精确匹配、全文检索分为很多种,需要结合开发需求进行因地制宜的使用。
——————————————————————————————————
更多ES相关实战干货经验分享,请扫描下方【铭毅天下】微信公众号二维码关注。
(每周至少更新一篇!)
和你一起,死磕Elasticsearch!
——————————————————————————————————
2017年11月7日 22:27 于家中床前
作者:铭毅天下
转载请标明出处,原文地址:
http://blog.csdn.net/laoyang360/article/details/78473322
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow