solr

Solr与HBase架构设计

五迷三道 提交于 2020-04-06 13:11:14
如何在保证存储量的情况下,又能保证数据的检索速度 。 HBase提供了完善的海量数据存储机制,Solr、SolrCloud提供了一整套的数据检索方案。 使用 HBase搭建结构数据存储云,用来存储海量数据;使用 SolrCloud集群用来搭建搜索引擎,将要查找的结构化数据的 ID查找出来,只配置它存储ID。 1.用户write data写数据(wd) 从用户提交写数据请求wd1开始;经历wd2写入MySQL数据库或写入结构数据存储云中;wd3提交到Solr集群中,从而依据业务需求创建索引。 2.用户read data读数据(rd) 从用户提交读数据请求rd1开始;经历rd2直接读取MySQL中数据或向Solr集群请求搜索服务;rd3向Solr集群请求得到的搜索结果为ID,再向结构数据存储云中通过ID取出数据,最后返回给用户结果。 参考文档: Solr与HBase架构设计 来源: https://www.cnblogs.com/badboy200800/p/10011180.html

Solr与MySQL查询性能对比

最后都变了- 提交于 2020-04-06 10:34:52
测试环境 本文简单对比下Solr与MySQL的查询性能速度。 测试数据量:10407608 Num Docs: 10407608 普通查询 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时间。 在项目中一个最常用的查询,查询某段时间内的数据,SQL查询获取数据,30s左右 SELECT * FROM `tf_hotspotdata_copy_test` WHERE collectTime BETWEEN '2014-12-06 00:00:00' AND '2014-12-10 21:31:55'; 对collectTime建立索引后,同样的查询,2s,快了很多。 Solr索引数据: <!--Index Field for HotSpot--> <field name="CollectTime" type="tdate" indexed="true" stored="true"/> <field name="IMSI" type="string" indexed="true" stored="true"/> <field name="IMEI" type="string" indexed="true" stored="true"/> <field name="DeviceID" type="string" indexed="true" stored=

在Tomcat部署Solr 4.3

a 夏天 提交于 2020-04-06 08:39:08
方法一: 假定 $SOLR_HOME 为E:\Software\apache-tomcat-6.0.35-solr\solr 步骤1,从solr-4.3.0\dist复制solr-4.3.0.war到 $SOLR_HOME 并重命名为solr.war; 步骤2,将solr-4.3.0\example\solr复制到 $SOLR_HOME 目录; 步骤3,在tomcat/conf/catalina/localhost下新建solr.xml,如下: <?xml version="1.0" encoding="utf-8"?> <Context docBase="E:\Software\apache-tomcat-6.0.35-solr\solr\solr.war" reloadable="true" > <Environment name="solr/home" type="java.lang.String" value="E:\Software\apache-tomcat-6.0.35-solr\solr" override="true" /> </Context> 步骤4,从solr-4.3.0\example\lib\ext复制所有的jar到tomcat/lib下,并复制solr-4.3.0\example\resources\log4j.properties到tomcat

Solr高亮的配置参数说明

笑着哭i 提交于 2020-04-06 08:38:35
高亮的配置 参数详细说明: hl.fl: 用空格或逗号隔开的字段列表。要启用某个字段的highlight功能,就得保证该字段在schema中是stored。如果该参数未被给出,那么就会高亮默认字段 standard handler会用df参数,dismax字段用qf参数。你可以使用星号去方便的高亮所有字段。如果你使用了通配符,那么要考虑启用hl.requiredFieldMatch选项。 hl.requireFieldMatch: 如果置为true,除非该字段的查询结果不为空才会被高亮。它的默认值是false,意味着它可能匹配某个字段却高亮一个不同的字段。如果hl.fl使用了通配符,那么就要启用该参数。尽管如此,如果你的查询是all字段(可能是使用copy-field 指令),那么还是把它设为false,这样搜索结果能表明哪个字段的查询文本未被找到 hl.usePhraseHighlighter: 如果一个查询中含有短语(引号框起来的)那么会保证一定要完全匹配短语的才会被高亮。 hl.highlightMultiTerm 如果使用通配符和模糊搜索,那么会确保与通配符匹配的term会高亮。默认为false,同时hl.usePhraseHighlighter要为true。 hl.snippets: 这是highlighted片段的最大数。默认值为1,也几乎不会修改

如何设置SOLR的高亮 (highlight)

纵然是瞬间 提交于 2020-04-06 08:23:00
打开SOLR的核心配置文件: solrconfig.xml 找到 standard request handler 写入以下XML配置代码: view plain copy to clipboard print ? <requestHandler name="standard" class="solr.SearchHandler" default="true"> <!-- default values for query parameters --> <lst name= "defaults"> <str name= "echoParams">explicit</str> < bool name="hl">true</bool> <str name= "hl.fl">title</str> < int name="hl.snippets">3</int> <!-- < int name="rows">10</int> <str name= "fl">*</str> <str name= "version">2.1</str> --> </lst> </requestHandler> <requestHandler name="standard" class="solr.SearchHandler" default="true"> <!-- default values for

Solr查询语法

烈酒焚心 提交于 2020-04-06 07:18:01
查询参数 常用: q - 查询字符串,必须的。 fl - 指定返回那些字段内容,用逗号或空格分隔多个。 start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用。 rows - 指定返回结果最多有多少条记录,配合start来实现分页。 sort - 排序,格式: sort=<field name>+<desc|asc>[,<field name>+<desc|asc>] 。示例:(inStock desc, price asc)表示先 "inStock" 降序, 再 "price" 升序,默认是相关性降序。 wt - (writer type)指定输出格式,可以有 xml, json, php, phps。 fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如: q=mm&fq=date_time:[20081001 TO 20091031] ,找关键字mm,并且date_time是20081001到20091031之间的 不常用: defType : q.op - 覆盖schema.xml的defaultOperator(有空格时用"AND"还是用"OR"操作逻辑),一般默认指定 df - 默认的查询字段,一般默认指定 qt - (query type)指定那个类型来处理查询请求,一般不用指定

solr 查询

不羁岁月 提交于 2020-04-06 07:04:44
1、常用查询参数说明 q - 查询字符串,必须的。 fl - 指定返回那些字段内容,用逗号或空格分隔多个。 start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用。 rows - 指定返回结果最多有多少条记录,配合start来实现分页。 sort - 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]。示例:(inStock desc, price asc)默认是相关性降序。 wt - (writer type)指定输出格式,可以有 xml, json, php, phps fq - (filter query)过虑q查询结果, 官方文档 例如:q=mm&fq=date_time:[20081001 TO 20091031],找关键字mm,并且date_time是20081001到20091031之间的。 q.op - 有空格时用"AND"还是用"OR"操作逻辑,一般默认指定 “OR” df - 查询字段 qt - (query type)指定那个类型来处理查询请求,默认是standard。 indent - 返回的结果是否缩进,默认关闭,用 indent=true|on 开启,一般调试json,php,phps,ruby输出才有必要用这个参数。 version - 查询语法的版本

solr的一些查询语法

我是研究僧i 提交于 2020-04-06 06:02:53
以下内容来自solr中国 1.1. 首先假设我的数据里fields有:name, tel, address 预设的搜寻是name这个字段, 如果要搜寻的数据刚好就是 name 这个字段,就不需要指定搜寻字段名称. 1.2. 查询规则: 如欲查询特定字段(非预设字段),请在查询词前加上该字段名称加 “:” (不包含”号) 符号, 例如: address:北京市海淀区上地软件园 tel:88xxxxx1 1>. q代表query input 2>. version代表solr版本(建议不要变动此变量) 3>. start代表显示结果从哪一笔结果资料开始,预设为0代表第一笔, rows是说要显示几笔数据,预设为10笔 (因为有时查询结果可能有几百笔,但不需要显示所有结果,所以预设是从第一笔开始到第十笔) 所以若要显示第10到30笔就改为: http: //localhost:8080/solr/select/?indent=on&version=2.2&q=address:北京 市海淀区上地软件园+tel:88xxxxx1&version=2.2&start=10&rows= 20&indent=on (indent代表输出的xml要不要缩行.预设为开启 on) 1.3. 另外,要限定输出结果的内容可用 “fl=” 加上你要的字段名称,如以下这个范例: http: //localhost

solr研磨之性能调优

独自空忆成欢 提交于 2020-04-06 05:11:26
  作者:战斗民族就是干   转载请注明地址:http://www.cnblogs.com/prayers/p/8982141.html   本篇文章我们来了解一下solr的性能方面的调优,分为Schema优化、索引更新与提交调优、索引合并性能调优、Solr缓存、Solr查询性能优化 Schema优化    1、index=true比index=false在索引时占用更多的内存、索引合并和优化时间更长,索引体积也响应变的更大,如果你不需要针对该域进行检索,可以设置为index=false   2、如果不关心Term在文档中出现的次数对最终文档的影响可以设置omitNorms=true,即取消标准化因此对score的影响。 它能减少磁盘空间的占用并加快索引速度   3、如果你不需要对该域进行高亮,你还可以设置omitPositions=true进一步减小索引体积   4、如果只需要利用倒排索引结构根据指定的Term找到对应的document,不需要计算Term在Document中的出现频率来考虑每个索引文档的权重,那么还可以设置omitTermFreqAndPositions=true即忽略TF计算以及Term在TermVector中的位置信息,这样能够进一步减小索引体积   5、对于stored属性而言,在响应结果集中通过FL参数返回stored=true的域的执行开销很大

solrconfig.xml配置文件

人盡茶涼 提交于 2020-04-06 02:50:24
部分来自http://www.jianshu.com/p/8cf609207497 一、总览 solr的配置重要的有三个:solr.xml、solrConfig.xml、schema.xml solr.xml 是整个Solr节点的配置,是定义关于core的管理、collection分片、solr云 和http请求处理,不过目前改动不多,也没仔细研究。 solrConfig.xml:关于core或collection的主要配置信息。 schema.xml :定义索引中的文档结构,包括字段名、字段类型、字段处理方法等,类似于表结构定义,比它更复杂。 二、Solr启动过程 1、solr启动的时候会找Java的全局变量:solr.solr.home ,作为根目录。 在web.xml中配置java全局变量: <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>D:\leaning\solr\solr-home</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> 2、solr到根目录下面的每个子目录,去查找是否包含core.properties的文件