solr 的edismax与dismax比较与分析】的更多相关文章

edismax支持boost函数与score相乘作为,而dismax只能使用bf作用效果是相加,所以在处理多个维度排序时,score其实也应该是其中一个维度 ,用相加的方式处理调整麻烦. 而dismax的实现代码逻辑比较简单,看起来比较易理解,edismax是它的加强版,其实是改变了不少..比如在以下: 先看看dismax的解析主要实现思路: 首先取出搜索字段名qf 将最终解析成一个BooleanQuery 先解析主mainQuery: 用户主要是搜索串的解析 altQuery解析处理,看是否使…
如何控制评分 如果设置了sort字段,那么将会按照sort字段的顺序返回结果. 如果没有设置sort字段,那么将会根据相关度打分来排序.也就是说,相关度更高的排在前面. 如何来定制适合自身业务的排序打分规则(boost)呢?经过这段时间的思考与实践,想到了如下三个方法:1.定制Lucene的boost算法,加入自己希望的业务规则:2.使用Solr的edismax实现的方法,通过bf查询配置来影响boost打分.3.在建索引的schema时设置一个字段做排序字段,通过它来影响文档的总体boost打…
博客分类:   上次已经写过一篇关于solr中,查询条件过多的异常的文章,这次在总结扩展一下: 有时候我们的查询条件会非常多,由于solr的booleanquery默认设置的条件数为1024,所以超过这个限制的  会报异常,这样设置的原因是为了限制过多条件查询,降低查询的性能,但有时候又必须这样查,或分析数据用,  所以可以临时改变下,修改方法: 修改solrconfig.xml文件: 伦理片 http://www.dotdy.com/ <maxBooleanClauses>20000<…
做搜索引擎避免不了排序问题,当排序没有要求时,solr有自己的排序打分机制及sorce字段 1.无特殊排序要求时,根据查询相关度来进行排序(solr自身规则) 2.当涉及到一个字段来进行相关度排序时,可以直接使用solr的sort功能来实现 3.对多个字段进行维度的综合打分排序(这个应该才是重点,内容) 使用Solr搭建搜索引擎很容易,但是如何制定合理的打分规则(boost)做排序却是一个很头痛的事情.Solr本身的排序打分规则是继承自 Lucene的文本相关度的打分即boost,这一套算法对于…
Solr 支持多种查询解析,给搜索引擎开发人员提供灵活的查询解析.Solr 中主要包含这几个查询解析器:标准查询解析器.DisMax 查询解析器,扩展 DisMax 查询解析器(eDisMax) Dismax Dismax handler比standard handler多如下功能: 以不同的权值来搜索多个field. 限制查询语法为一个小的集合并且用无语法错误.该特性是强制的并是不可配置的 整个搜索查询的自动的短语boosting 便利的查询boosting参数,通常同函数查询一块使用 能指定…
Solr的defType有dismax/edismax两种,这两种的区别,可参见:http://blog.csdn.net/duck_genuine/article/details/8060026 下面示例用于演示如下场景: 有一网站,在用户查询的结果中,需要按这样排序: VIP的付费信息需要排在免费信息的前头 点击率越高越靠前 发布时间越晚的越靠前 这样的查询排序使用普通的查询结果的Order by是做不到的,必需使用solr的defType. 做法: 1.先看schema.xml的定义: <…
Solr的defType有dismax/edismax两种,这两种的区别,可参见:http://blog.csdn.net/duck_genuine/article/details/8060026 下面示例用于演示如下场景: 有一网站,在用户查询的结果中,需要按这样排序: VIP的付费信息需要排在免费信息的前头 点击率越高越靠前 发布时间越晚的越靠前 这样的查询排序使用普通的查询结果的Order by是做不到的,必需使用solr的defType. 做法: 1.先看schema.xml的定义: <…
Solr的defType有dismax/edismax两种,这两种的区别,可参见:http://blog.csdn.net/duck_genuine/article/details/8060026 edismax支持boost函数与score相乘作为,而dismax只能使用bf作用效果是相加,所以在处理多个维度排序时,score其实也应该是其中一个维度 ,用相加的方式处理调整麻烦. 而dismax的实现代码逻辑比较简单,看起来比较易理解,edismax是它的加强版,其实是改变了不少..比如在以下…
solr是一个基于lucene的搜索引擎,lucene是一个全文检索引擎的架构.solr在此之上进行了封装完善,变成了一个很流行实用的搜索引擎,可以应对绝大部分的搜索需求.使用搜索引擎有以下几点好处: 可以减少对数据库的压力,当数据量大或者查询频繁的的时候,频繁的使用查询对数据库资源消耗较大. 可以对搜索结果进行权重设置来排序 可以结合各种中文分词器,达到理想的搜索效果 例如ik,jecsg,solr本身对英文检索比较准确,但是对中文检索漏洞较多 solr可以依赖jetty容器,也可以依赖在to…
一.solr搜索流程介绍 1. 前面我们已经学习过Lucene搜索的流程,让我们再来回顾一下 流程说明: 首先获取用户输入的查询串,使用查询解析器QueryParser解析查询串生成查询对象Query,使用所有搜索器IndexSearcher执行查询对象Query得到TopDocs,遍历TopDocs得到文档Document 2. Solr搜索的工作流程: 流程说明: 用户输入查询字符串,根据用户的请求类型qt(查询为/select)选择请求处理器RequestHandler,根据用户输入的参数…