2017年4月6日

Elasticsearch搜索之explain评分分析

摘要: Lucene的IndexSearcher提供一个explain方法,能够解释Document的Score是怎么得来的,具体每一部分的得分都可以详细地打印出来。这里用一个中文实例来纯手工验算一遍Lucene的评分算法,并且结合Lucene的源码做一个解释。 首先是测试用例,我使用“北京东路”来检索一个 阅读全文

posted @ 2017-04-06 18:50 虾米&老黄牛 阅读(5310) 评论(0) 推荐(0) 编辑

Elasticsearch搜索之most_fields分析

摘要: 顾名思义,most_field就是匹配词干的字段数越多,分数越高,也可设置权重boost。 下面是简易公式(详细评分算法请参考:http://m.blog.csdn.net/article/details?id=50623948): score=match_field1_score*boost+ma 阅读全文

posted @ 2017-04-06 18:46 虾米&老黄牛 阅读(1278) 评论(0) 推荐(1) 编辑

Elasticsearch搜索之cross_fields分析

摘要: cross_fields类型采用了一种以词条为中心(Term-centric)的方法,这种方法和best_fields及most_fields采用的以字段为中心(Field-centric)的方法有很大的区别。 它将所有的字段视为一个大的字段,然后在任一字段中搜索每个词条。 operator:ope 阅读全文

posted @ 2017-04-06 18:45 虾米&老黄牛 阅读(2033) 评论(0) 推荐(0) 编辑

Elasticsearch搜索之best_fields分析

摘要: 顾名思义,best_field就是获取最佳匹配的field,另个可以通过tie_breaker来控制其他field的得分,boost可以设置权重(默认都为1)。 下面从宏观上来讲的简单公式: score=best_field.score*boost+other_fields*boost.score* 阅读全文

posted @ 2017-04-06 18:40 虾米&老黄牛 阅读(9602) 评论(0) 推荐(1) 编辑

Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)

摘要: 一、先摆需求: 1、中文搜索、英文搜索、中英混搜 如:“南京东路”,“cafe 南京东路店” 2、全拼搜索、首字母搜索、中文+全拼、中文+首字母混搜 如:“nanjingdonglu”,“njdl”,“南京donglu”,“南京dl”,“nang南东路”,“njd路”等等组合 3、简繁搜索、特殊符号 阅读全文

posted @ 2017-04-06 18:29 虾米&老黄牛 阅读(30439) 评论(12) 推荐(5) 编辑

Elasticsearch实现类似 like '?%' 搜索

摘要: 在做搜索的时候,下拉联想词的搜索肯定是最常见的一个场景,用户在输入的时候,要自动补全词干,说得简单点,就是以...开头搜索,如果是数据库,一句SQL就很容易实现,但在elasticsearch如何实现呢? 大家可能会立马想到用elasticsearch自带的suggest功能,确实,在一些初级应用场 阅读全文

posted @ 2017-04-06 17:21 虾米&老黄牛 阅读(11453) 评论(0) 推荐(2) 编辑

导航