solr 自定义 dismax查询方式

 1、在solrconfig.xml中增加

Xml代码 
  1. <queryParser name="imdismax"  
  2.         class="com.szhtp.search.parse.IMDisMaxQParserPlugin" />  
  3. <requestHandler name="imdismax" class="solr.SearchHandler">  
  4.         <lst name="defaults">  
  5.             <str name="defType">imdismax</str>  
  6.   
  7.             <!-- 查询关键字和设置权重 -->  
  8.             <str name="qf">keywords^3 question^2 answer^0.4</str>  
  9.   
  10.             <str name="pf">keywords^3 question^2 answer^0.4</str>  
  11.   
  12.             <str name="mm">2&lt;-1 5&lt;-2 6&lt;90%</str>  
  13.   
  14.             <!-- 输出时显示那些字段 -->  
  15.             <str name="fl">id,answer,score</str>  
  16.   
  17.             <!-- 设置PhraseSlop的坡度 -->  
  18.             <int name="ps">100</int>  
  19.   
  20.             <str name="hl.fl">answer</str>  
  21.   
  22.             <!-- 默认查询语句用于容错处理 -->  
  23.             <str name="q.alt">*:*</str>  
  24.   
  25.             <!-- 每个snippet返回的最大字符数。默认是100.如果为0,那么该字段不会被fragmented且整个字段的值会被返回。大字段时不会这么做。  
  26.             这里的answer=<str name="hl.fl">answer</str>  
  27.               -->  
  28.             <str name="f.answer.hl.fragsize">50</str>  
  29.   
  30.             <!-- instructs Solr to return the field itself if no query terms are  
  31.                 found -->  
  32.             <!-- 如果没有生成snippet(没有terms 匹配),那么使用另一个字段值作为返回 -->  
  33.             <str name="f.answer.hl.alternateField">answer</str>  
  34.   
  35.             <!-- 这个是solr制定fragment算法的扩展点。gap是默认值。  
  36.                 regex是另一种选项,这种选项指明highlight的边界由一个正则表达式确定。  
  37.                 这是一种非典型的高级选项。为了知道默认设置和fragmenters (and formatters)是如何配置的,  
  38.                 可以看看solrconfig.xml中的highlight段 -->  
  39.             <str name="f.answer.hl.fragmenter">regex</str>  
  40.   
  41.             <str name="tie">0.1</str>  
  42.         </lst>  
  43.     </requestHandler>  

 

 

solr 自定义 dismax查询方式
 

你可能感兴趣的:(Solr,自定义,dismax查询方式)