1、关于默认搜索域

If you are using the Lucene query parser, queries that don't specify a field name will use the defaultSearchField. The DisMax and Extended DisMax query parsers do not use this value. 

Use of the defaultSearchField element is deprecated in Solr versions 3.6 and higher. Instead, you should use the df request parameter. At some point, the defaultSearchField
element may be removed。
即使用solrConfig中的df属性代替schema中的defaultSearchField。

2、关于qf

从solr的example中得到的solrConfig.xml中,qf的定义如下:
       <str name="qf">
text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0
</str>

由于content不占任何的权重,因此如果某个文档只在content中包含关键字的话,搜索结果并不会返回这个文档。因此,对于nutch提取的索引来说,要增加content的权重,以及url的权重(如果需要的话):

       <str name="qf">
content^1.0 text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0
</str>

二、Search Handler

[html] view
plain
copy

  1. <requestHandler name="/browse" class="solr.SearchHandler">
  2. <lst name="defaults">
  3. <str name="echoParams">explicit</str>
  4. <!-- VelocityResponseWriter settings -->
  5. <str name="wt">velocity</str>
  6. <str name="v.template">browse</str>
  7. <str name="v.layout">layout</str>
  8. <str name="title">Solritas_test</str>
  9. <!-- Query settings -->
  10. <str name="defType">edismax</str>
  11. <str name="qf">
  12. text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
  13. title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0
  14. </str>
  15. <str name="df">content</str>
  16. <str name="mm">100%</str>
  17. <str name="q.alt">*:*</str>
  18. <str name="rows">10</str>
  19. <str name="fl">*,score</str>
  20. <!--more like this setting-->
  21. <str name="mlt.qf">
  22. text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
  23. title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0
  24. </str>
  25. <str name="mlt.fl">text,features,name,sku,id,manu,cat,title,description,keywords,author,resourcename</str>
  26. <int name="mlt.count">3</int>
  27. <!-- Faceting defaults -->
  28. <str name="facet">on</str>
  29. <str name="facet.field">cat</str>
  30. <str name="facet.field">manu_exact</str>
  31. <str name="facet.field">content_type</str>
  32. <str name="facet.field">author_s</str>
  33. <str name="facet.query">ipod</str>
  34. <str name="facet.query">GB</str>
  35. <str name="facet.mincount">1</str>
  36. <str name="facet.pivot">cat,inStock</str>
  37. <str name="facet.range.other">after</str>
  38. <str name="facet.range">price</str>
  39. <int name="f.price.facet.range.start">0</int>
  40. <int name="f.price.facet.range.end">600</int>
  41. <int name="f.price.facet.range.gap">50</int>
  42. <str name="facet.range">popularity</str>
  43. <int name="f.popularity.facet.range.start">0</int>
  44. <int name="f.popularity.facet.range.end">10</int>
  45. <int name="f.popularity.facet.range.gap">3</int>
  46. <str name="facet.range">manufacturedate_dt</str>
  47. <str name="f.manufacturedate_dt.facet.range.start">NOW/YEAR-10YEARS</str>
  48. <str name="f.manufacturedate_dt.facet.range.end">NOW</str>
  49. <str name="f.manufacturedate_dt.facet.range.gap">+1YEAR</str>
  50. <str name="f.manufacturedate_dt.facet.range.other">before</str>
  51. <str name="f.manufacturedate_dt.facet.range.other">after</str>
  52. <!-- Highlighting defaults -->
  53. <str name="hl">on</str>
  54. <str name="hl.fl">content features title name</str>
  55. <str name="hl.encoder">html</str>
  56. <str name="hl.simple.pre"></str>
  57. <str name="hl.simple.post"></str>
  58. <str name="f.title.hl.fragsize">0</str>
  59. <str name="f.title.hl.alternateField">title</str>
  60. <str name="f.name.hl.fragsize">0</str>
  61. <str name="f.name.hl.alternateField">name</str>
  62. <str name="f.content.hl.snippets">3</str>
  63. <str name="f.content.hl.fragsize">200</str>
  64. <str name="f.content.hl.alternateField">content</str>
  65. <str name="f.content.hl.maxAlternateFieldLength">750</str>
  66. <!-- Spell checking defaults -->
  67. <str name="spellcheck">on</str>
  68. <str name="spellcheck.extendedResults">false</str>
  69. <str name="spellcheck.count">5</str>
  70. <str name="spellcheck.alternativeTermCount">2</str>
  71. <str name="spellcheck.maxResultsForSuggest">5</str>
  72. <str name="spellcheck.collate">true</str>
  73. <str name="spellcheck.collateExtendedResults">true</str>
  74. <str name="spellcheck.maxCollationTries">5</str>
  75. <str name="spellcheck.maxCollations">3</str>
  76. </lst>
  77. <!-- append spellchecking to our list of components -->
  78. <arr name="last-components">
  79. <str>spellcheck</str>
  80. </arr>
  81. </requestHandler>

1、SearchHandler是reqestHandler中的一种,它以requestHandler作为顶层元素。

2、二级元素包括first-components,  last-components, defautls等。

3、Velocity的配置

[html] view
plain
copy

  1. <!-- VelocityResponseWriter settings -->
  2. <str name="wt">velocity</str>
  3. <str name="v.template">browse</str>
  4. <str name="v.layout">layout</str>
  5. <str name="title">Solritas_test</str>

wt:指定返回搜索结果的格式

  • v.template: template name to use, without the .vm suffix. If not specified, "default"[.vm] will be used.

  • v.template.<name>: overrides a file system template

  • debugQuery: if true, default view displays explanations for each hit and additional debugging information in the footer.

  • v.json: Escapes and wraps Velocity generated response with v.json parameter as a JavaScript function.

  • v.layout: Template name that wraps main template (v.template). Main template renders to a $content that can be used in layout template.

  • v.base_dir: overwrites default template load path (conf/velocity/).

  • v.properties: specifies a Velocity properties file to be applied, found using the Solr resource loader mechanism. If not specified, no .properties file is loaded. Example: v.properties=velocity.properties
    where velocity.properties can be found using Solr's resource loader mechanism, for example in the conf/ directory (not conf/velocity which is for templates only). The .properties file could also be located inside a JAR in the lib/ directory, or other locations.

  • v.contentType: sets the value of the HTTP response's Content-Type header (in case (x)html pages should be UTF-8 (instead of ISO-8859-1) encoded, make sure you set this option to text/xml;charset=UTF-8 (for
    XHTML) and text/html;charset=UTF-8 (for HTML), respectively)

velocity的其余配置参考:http://blog.csdn.net/jediael_lu/article/details/38039267。

4、搜索域qf

[html] view
plain
copy

  1. <str name="qf">
  2. text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
  3. title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0
  4. </str>

定义了从哪些域进行搜索,以及各个域之间的权重。

5、QueryParser的选择 defType,常用efType=lucene, defType=edismax

[html] view
plain
copy

  1. <str name="defType">edismax</str>

6、默认搜索域:df

若无指定搜索域,则此域作为默认的搜索域。

df/qf/defaultSearchField比较:

(1)使用solrConfig中的df属性代替schema中的defaultSearchField。

(2)df is
the default field and will only take effect if the qf is
not defined.

7、默认的query

[html] view
plain
copy

  1. <str name="q.alt">*:*</str>

q.alt: 当q字段为空时,用于设置缺省的query,通常设置q.alt为*:*。

8、 mm:minimal should match。Solr支持三种查询clause,即“必须出现”, “不能出现”和“可以出现”,分别对应于AND, -, OR。

[html] view
plain
copy

  1. <str name="mm">100%</str>

When dealing with queries there are 3 types of "clauses" that Lucene knows about: mandatory, prohibited, and 'optional' (aka: "SHOULD") By default all words or phrases specified in the "q" param are treated as "optional" clauses unless they are preceeded by
a "+" or a "-". When dealing with these "optional" clauses, the "mm" option makes it possible to say that a certain minimum number of those clauses must match (mm). Specifying this minimum number can be done in complex ways, equating to ideas like...

  • At least 2 of the optional clauses must match, regardless of how many clauses there are: "2"

  • At least 75% of the optional clauses must match, rounded down: "75%"

  • If there are less than 3 optional clauses, they all must match; if there are 3 or more, then 75% must match, rounded up: "2<-25%"

  • If there are less than 3 optional clauses, they all must match; for 3 to 5 clauses, one less than the number of clauses must match, for 6 or more clauses, 80% must match, rounded down: "2<-1 5<80%"

Full details on the variety of complex expressions supported are explained in detail here.

In Solr 1.4 and prior, you should basically set mm=0 if you want the equivilent of q.op=OR, and mm=100% if you want the equivilent of q.op=AND. In 3.x and trunk the default value of mm is dictated by the q.op param
(q.op=AND => mm=100%; q.op=OR => mm=0%). Keep in mind the default operator is effected by your schema.xml <solrQueryParser defaultOperator="xxx"/> entry. In older versions of Solr the default value is 100% (all clauses must match)

9、每页返回的行数

[html] view
plain
copy

  1. <str name="rows">10</str>

10、返回Field的集合

[html] view
plain
copy

  1. <str name="fl">*,score</str>

fl: 是逗号分隔的列表,用来指定文档结果中应返回的 Field 集。默认为 “*”,指所有的字段。以上即返回所有域,而加上score。


11、对返回结果排序

(1)排序的字段必须是index=true

(2)<str name="sort">tstamp asc</str>

若此元素放在<default>中,则指定默认元素,query时可以改变。

若放在<invariant>中,则在query中也不可以改变。

这应该对其它元素同样适用。

参考:http://stackoverflow.com/questions/24966924/how-to-change-the-default-rank-field-from-score-to-other-filed-in-solr/24971353#24971353

版权声明:本文为博主原创文章,未经博主允许不得转载。

【solr专题之二】配置文件:solr.xml solrConfig.xml schema.xml 分类: H4_SOLR/LUCENCE 2014-07-23 21:30 1959人阅读 评论(0) 收藏的更多相关文章

  1. 【solr基础教程之二】索引 分类: H4_SOLR/LUCENCE 2014-07-18 21:06 3331人阅读 评论(0) 收藏

    一.向Solr提交索引的方式 1.使用post.jar进行索引 (1)创建文档xml文件 <add> <doc> <field name="id"&g ...

  2. 【solr专题之三】Solr常见异常 分类: H4_SOLR/LUCENCE 2014-07-19 10:30 3223人阅读 评论(0) 收藏

    1.RemoteSolrException: Expected mime type application/octet-stream but got text/html 现象: SLF4J: Fail ...

  3. 【Lucene4.8教程之二】索引 2014-06-16 11:30 3845人阅读 评论(0) 收藏

    一.基础内容 0.官方文档说明 (1)org.apache.lucene.index provides two primary classes: IndexWriter, which creates ...

  4. C语言基础:二维数组 分类: iOS学习 c语言基础 2015-06-10 21:42 16人阅读 评论(0) 收藏

    二维数组和一位数组类似. 定义: 数据类型 数组名[行][列]={{ },{ }....}; 定义时,一维(行)的长度可以省略,但是二维(列)的长度不可以省略.但是访问时,一定使用双下标. 二维数组的 ...

  5. AndroidManifest.xml中的application中的name属性 分类: android 学习笔记 2015-07-17 16:51 116人阅读 评论(0) 收藏

    被这个不起眼的属性折磨了一天,终于解决了. 由于项目需要,要合并两个android应用,于是拷代码,拷布局文件,拷values,所有的都搞定之后程序还是频频崩溃,一直没有找到原因,学android时间 ...

  6. 【solr专题之四】关于VelocityResponseWriter 分类: H4_SOLR/LUCENCE 2014-07-22 12:32 1639人阅读 评论(0) 收藏

    一.关于Velocity的基本配置 在Solr中,可以以多种方式返回搜索结果,如单纯的文本回复(XML.JSON.CSV等),也可以返回velocity,js等格式.而VelocityResponse ...

  7. 【solr专题之四】在Tomcat 中部署Solr4.x 分类: H_HISTORY 2014-07-17 16:08 1286人阅读 评论(0) 收藏

    1.安装Tomcat (1)下载并解压至/opt/tomcat中 # cd /opt/jediael # tar -zxvf apache-tomcat-7.0.54.tar.gz # mv apac ...

  8. 【solr专题之一】Solr快速入门 分类: H4_SOLR/LUCENCE 2014-07-02 14:59 2403人阅读 评论(0) 收藏

    一.Solr学习相关资料 1.官方材料 (1)快速入门:http://lucene.apache.org/solr/4_9_0/tutorial.html,以自带的example项目快速介绍发Solr ...

  9. hadoop配置文件的加载机制 分类: A1_HADOOP 2015-01-21 11:29 839人阅读 评论(0) 收藏

    hadoop通过Configuration类来保存配置信息 1.通过Configuration.addResource()来加载配置文件 2.通过Configuration.get***()来获取配置 ...

随机推荐

  1. 在Google Drive上建立免费静态站点

    现今建立一个属于自己的站点已经是一件非常普遍和简单的事情了. 你能够选择买空间,买域名.你也能够使用免费空间.免费域名.你能够选择动态的php wordpress,joomla或者是静态的站点(如使用 ...

  2. 【吴节操点评】中国企业SaaS应用深谙未来者寥寥数几 两极分化将加剧

    数年前,在国外企业级应用如火如荼的时候.国内却是一片空白.而现在企业SaaS应用市场,包含用友.金蝶.东软在内的三巨头.已经有数十家之多.相比美国3000亿美元的企业应用三巨头来说,中国企业应用前三甲 ...

  3. 细说 iOS 消息推送

    APNS的推送机制 与Android上我们自己实现的推送服务不一样,Apple对设备的控制很严格.消息推送的流程必需要经过APNs: 这里 Provider 是指某个应用的Developer,当然假设 ...

  4. SFC梯形图编程

    SFC是居首的PLC编程语言 !: 不能为PLC所执行, 还需要其他的编程语言(梯形图) 转换成PLC可执行程序. 常用的SFC编程方法有三种 >  应用启保停电路进行 >  应用 置/复 ...

  5. 设计模式之十二:状态模式(State)

    状态模式: 当一个对象的内部状态发生变化时同意改变它的行为. Allow an object to alter its behavior when its internal state changes ...

  6. python-string中部分string替换

    今天遇到一个问题,就是需要把 “/home/zhangshuli/32_kk/” 中的32_kk 替换成为 52_kk 然后就在网上找方法,刚开始尝试的方法是 aaa = "/home/zh ...

  7. 【博客之星】CSDN2013博客之星--分析和预测

    本文纯属个人见解,多有得罪啊! 具体结果,还是看最后CSDN给的结果吧! 昵称 名字 题材 质量 数量 知名度 预测 阳光岛主 杨刚 Python,Clojure,SAE 很高 346+ 很大 一定( ...

  8. 【例题 7-2 UVA - 11059】Maximum Product

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] C语言for循环练习题 [代码] /* 1.Shoud it use long long ? 2.Have you ever tes ...

  9. BAT面试题 - 找一个无序实数数组中的最大差值

    题目描写叙述: 一个无序的实数数组a[i].要求求里面大小相邻的实数的差的最大值.比方 double a[]={1,5,4,0.2,100} 这个无序的数组,相邻的数的最大差值为100-5=95. 题 ...

  10. Haproxy 为 mysql 做负载均衡

    .tar.gz cd haproxy- uname -r vim /etc/haproxy.cfg global #日志 log 127.0.0.1 local0 maxconn chroot /tm ...