solr
solr
車輪の唄
atarik@163.com
展开
-
Solr 深度分页
概述长期以来,我们一直有一个深分页问题。如果直接跳到很靠后的页数,查询速度会比较慢。这是因为Solr的需要为查询从开始遍历所有数据。直到Solr的4.7这个问题一直没有一个很好的解决方案。直到solr4.7引入了游标才解决这个问题。 问题深分页的问题是很清楚。Solr必须为返回的搜索结果准备一个列表,并返回它的一部分。如果该部分来源于该列表的前面并不难。但如果我们想返回第10000页(每页20条记...原创 2018-04-24 23:24:26 · 925 阅读 · 0 评论 -
Solr QueryElevationComponent--实现竞价排名
在很多搜索网站上都有这样的一个功能,就是竞价排名,绑定某个关键字,给钱了那我给你排前面。包括很多视频网站的一些站内搜索功能也有这样的需求;最近在看solr官网,solr的查询功能中就包含了这一功能。参考地址如下:https://wiki.apache.org/solr/QueryElevationComponent#elevateIds.2FexcludeIds原创 2017-11-24 11:02:43 · 846 阅读 · 0 评论 -
solr集群管理
在九个节点上设置三个shard三个replica,指定在每个节点上均匀分配的创建collection方式curl 'http://localhost:8991/solr/admin/collections?action=CREATE&name='$name'&numShards=3&replicationFactor=1&collection.configName='$name'&create原创 2017-12-01 11:50:37 · 380 阅读 · 0 评论 -
tf/idf评分算法
lucene 的评分机制elasticsearch是基于lucene的,所以他的评分机制也是基于lucene的。评分就是我们搜索的短语和索引中每篇文档的相关度打分。如果没有干预评分算法的时候,每次查询,lucene会基于一个评分算法来计算所有文档和搜索语句的相关评分。使用lucene的评分机制基本能够把最符合用户需要的搜索放在最前面。当然有的时候,我们可能想要自定义评分算法,这个就和lu...原创 2017-09-14 10:24:58 · 2681 阅读 · 3 评论 -
title:this is && title:(this is)&&title:"this is"的区别
title:this is 等效于 title:this OR df:is 空格默认为OR操作,具体由q.op指定 title:(this is) 在title中查询this is,但是会分词 title:”this is” 在title中查询this is ,分词,但会按词元位置匹配,分词的原因在于this 和 is中间有空格默认为分词 Solr支持三种查询clause,即“必须出现”,原创 2017-07-07 15:16:37 · 592 阅读 · 0 评论 -
solr 标准查询解析器的加权
q=zhishidian:抗日战争^5 是对"抗日战争"分词后得到的所有结果进行加权原创 2017-09-02 16:13:10 · 601 阅读 · 0 评论 -
zookeeper在solrcloud中的应用
在Solr中,一个索引的实例称之为Core,而在SolrCloud中,一个索引的实例称之为Shard;Shard 又分为leader和replica。1. SolrCloud的特质作为分布式搜索引擎的SolrCloud具有以下几个特质:可扩展性 所谓的可扩展性就是指可以通过扩大集群的规模来实现性能的提升。有两种方式来实现可扩展性,一种是纵向扩展,即加快CP原创 2017-05-14 14:08:44 · 1974 阅读 · 0 评论 -
IK分词组件大小写的问题
IK分词器在加载词典时, 词典中的大小写字符加载到内存时一律变为小写, 但是在分词时大小写是不会转换的, 所以就有以下情况发生:当词典中有"HL定理", 对"HL定理的应用"分词时是不能分出"HL定理"的,处理办法:在讲要分词的句子输入分词器前, 先将所有的大些字母转化为小写, 这样分词出来的就是 "hl定理"原创 2017-08-27 16:53:18 · 3622 阅读 · 0 评论 -
通过log查看solr查询命中个数
命令:cat ./solr.log | grep hits | awk -F 'hits=' '{print $NF}' | awk '{ sum += $1; } END { print "sum = " sum; print "average = " sum/NR }'运行结果sum = 3093382average = 194.149命中值越低速度越快?...原创 2018-02-08 10:32:26 · 576 阅读 · 0 评论 -
solr启动-p参数
-p参数指定内网ip, 则在外网测试时不能访问如果指定外网ip, 是否会造成网络延迟???在solr集群中, zookeeper是对外的, 前端搜索服务在从zk获取到solr节点后是前端直接访问solr指定的节点获取信息, 所以solr在-p中指定内网ip, 外网测试时访问不到的原创 2018-02-05 08:39:33 · 647 阅读 · 0 评论 -
头条个性化推荐搜索相关优化
1. 在搜索结果中,除了对socre排序外,还有按指定字段排序时, 该排序字段应设置为docvalue为true, 尽量减少对score外的字段排序2. 一次性获取100条数据处理后再分页的策略, 对solr压力很大3. 是否慎用 *:* ????...原创 2018-02-09 14:02:48 · 391 阅读 · 0 评论 -
solrj获取score
solrQuery.set("fl", "*,score"); solrj实际就是个http请求, solrQuery.set即使用key-value拼装的get请求形式原创 2018-02-01 09:19:40 · 551 阅读 · 0 评论 -
solrj 全量索引和增量索引
1.使用solrj只做add操做, 不需要commit, commit操作由solr配置文件中的softcommit和hardcommit控制即可2.solrj在对doc执行commit时可以设置延期commit时间原创 2018-01-23 19:45:42 · 790 阅读 · 0 评论 -
solr的Optimized
执行后会保证numdocs和maxdocs值相同,优化过程是重建索引段, 将删除的doc从segment中彻底删除, 也就是合并.del 和 .liv文件原创 2017-12-07 16:53:07 · 1550 阅读 · 0 评论 -
ik分词器适配solr详解
1.入口 iktokenizerfactory extentends tokenizerfactory implements resourceloaderaware 1)solr会实例化该工厂类并调用create(AttributeFactory factory) 方法,其中factory参数由solr传入 , 实例化方法IKTokenizerFactory(Map args)中的参数由so原创 2017-08-25 11:44:24 · 898 阅读 · 0 评论 -
solr搜索结果按某字段排序
如果想要搜索结果按某一field排序, 而相同的field情况下匹配度高的优先1) 使用sort可见使用sort排序只满足将section=3的排在前面, 但是同样都是section为3的不符合按相似度排序2) 应该对排序字段加权才是正解原创 2017-09-04 17:01:08 · 5765 阅读 · 6 评论 -
solrconfig.xml
solrconfig.xml 中的配置项主要分以下几大块:1. 依赖的 lucene 版本配置,这决定了你创建的 Lucene 索引结构,因为 Lucene 各版本之间的索引结构并不是完全兼容的,这个需要引起你的注意。2. 索引创建相关的配置,如索引目录, IndexWriterConfig 类中的相关配置 ( 它决定了你的索引创建性能 )3.solrconfig.xml原创 2017-05-13 17:48:18 · 384 阅读 · 0 评论