Solr相关,
Lucene
倒排索引
inverted index 用于计算idf 、df等。
倒排索引结构组成 : 词典+倒排列表( 排索引主要由两个部分组成:“单词词典”和“倒排文件”)
https://baike.baidu.com/item/%E5%80%92%E6%8E%92%E7%B4%A2%E5%BC%95/11001569?fr=aladdin
文档相关性
词频逆文档频率(tf-idf),用于计算查询词与文档相关性的计算。
tf-idf原理 https://www.cnblogs.com/sddai/p/5660181.html
计算算法 http://blog.csdn.net/qq_26562641/article/details/50404196
Solr
solr索引注意点
1、在存储数据的时候可以做一些处理,能够加快查询速度,比如多做一些计算,而这些计算值正好是之后查询中需要用到的。
或者挂一些flag,标记某些字段
2、模糊查询字段反向存储,比如 abc,然后需要通过*bc的方式模糊查询,可以在存储的时候存储为cba,然后查询的时候可以通过cb*来做模糊查询,可以用到索引的特性。
否则将会很消耗计算资源。
更多模糊查询优化方法参考:http://blog.csdn.net/qq_22929803/article/details/46924487
SolrCloud集群搭建
1、环境
windows 8
zookeeper3.4.10
solr6.0(内置jetty)
2、搭建
a、启动zookeeper集群,创建目录、myid、该配置文件port等
b、启动solr(伪集群,配置成不同端口和目录)
cd E:\solr\solrCloud\solr1\bin
solr.cmd start -p 8983 -z localhost:2181,localhost:2182,localhost:2183
cd E:\solr\solrCloud\solr2\bin
solr.cmd start -p 8984 -z localhost:2181,localhost:2182,localhost:2183
cd E:\solr\solrCloud\solr3\bin
solr.cmd start -p 8985 -z localhost:2181,localhost:2182,localhost:2183
参考:http://blog.csdn.net/u010887744/article/details/78128484
solr集合、数据操作
SOLR CollectionAPI如下:1、新建指定集合
(name为指定集合名称,collection.configName为集合对应的配置文件,存放在zookeeper上)
http://192.168.0.76:8180/solr/admin/collections?action=CREATE&name=v201711&numShards=3&replicationFactor=2&maxShardsPerNode=3&collection.configName=myconf&wt=json
2、删除指定集合
http://192.168.0.78:8180/solr/admin/collections?action=DELETE&name=v201711
3、通过solr页面删除数据 Url http://192.168.56.1:8985/solr/#/v/documents 参数 <delete><query>*:*</query></delete>
---即通过 http://192.168.56.1:8985/solr/v/update?_=1508988167216&boost=1.0&commitWithin=1000&overwrite=true&wt=json 来发送post请求
solr性能方面
1、查看索引占用: http://localhost:8983/solr/admin/cores?action=STATUS&memory=true2、solrcache方面: a、http://www.cnblogs.com/phinecos/archive/2012/05/24/2517018.htmlb、查询结果缓存(queryresultcache)配置
size的计算公式以及autowarmcount计算方式 3、参考配置优化实践: https://support.datastax.com/hc/en-us/articles/204226369-Solr-Configuration-Best-Practices-and-Troubleshooting-Tips https://wiki.apache.org/solr/SolrPerformanceProblems
eclipse导入solr源码
导入
1、源码导入 注意:先运行ant ivy-bootstrap 然后在运行ant eclipse保证ivy的jar被自动下载下来 http://blog.csdn.net/wenchanter/article/details/405360552、eclipse中调试源码 http://www.cnblogs.com/zhuwenjoyce/p/6506359.html 也可以使用StartSolrJetty 类启动jetty来调试,需要建立webapp等目录,放jar等参考上面link 最后修改StartSolrJetty 中的一些solr.home和web目录等配置 System.setProperty("solr.solr.home", "F:\\github\\lucene-solr-master\\solr\\server\\solr");
//F:\github\lucene-solr-master\solr\server\solr
Server server = new Server();
ServerConnector connector = new ServerConnector(server, new HttpConnectionFactory());
// Set some timeout options to make debugging easier.
connector.setIdleTimeout(1000 * 60 * 60);
connector.setSoLingerTime(-1);
connector.setPort(8986);
server.setConnectors(new Connector[] { connector });
WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/solr");
bb.setWar("F:\\github\\lucene-solr-master\\solr\\webapp\\web");
以上jetty的代码还是不用使用绝对路径比较好, 参考 :http://blog.csdn.net/wsp51676/article/details/47313099
调试
1、启动 http://localhost:8986/solr/#/2、创建Core
http://blog.csdn.net/u011306224/article/details/70163057
Solr整合Hbase
通过Lily-Hbase-Indexer,通过监听hbaseWAL日志异步更新Solr索引,避免了Hbase单主键无法支持多字段索引的问题。数据写入hbase,上述索引器会自动对于需要查询的字段在Solr建立索引。