http://13shu.iteye.com/blog/754742
字体颜色: 字体大小: 对齐:
您还没有登录,请
登录后发表评论(快捷键
1、在solrconfig.xml中增加
- <queryParser name="imdismax"
- class="com.szhtp.search.parse.IMDisMaxQParserPlugin" />
- <requestHandler name="imdismax" class="solr.SearchHandler">
- <lst name="defaults">
- <str name="defType">imdismax</str>
- <!-- 查询关键字和设置权重 -->
- <str name="qf">keywords^3 question^2 answer^0.4</str>
- <str name="pf">keywords^3 question^2 answer^0.4</str>
- <str name="mm">2<-1 5<-2 6<90%</str>
- <!-- 输出时显示那些字段 -->
- <str name="fl">id,answer,score</str>
- <!-- 设置PhraseSlop的坡度 -->
- <int name="ps">100</int>
- <str name="hl.fl">answer</str>
- <!-- 默认查询语句用于容错处理 -->
- <str name="q.alt">*:*</str>
- <!-- 每个snippet返回的最大字符数。默认是100.如果为0,那么该字段不会被fragmented且整个字段的值会被返回。大字段时不会这么做。
- 这里的answer=<str name="hl.fl">answer</str>
- -->
- <str name="f.answer.hl.fragsize">50</str>
- <!-- instructs Solr to return the field itself if no query terms are
- found -->
- <!-- 如果没有生成snippet(没有terms 匹配),那么使用另一个字段值作为返回 -->
- <str name="f.answer.hl.alternateField">answer</str>
- <!-- 这个是solr制定fragment算法的扩展点。gap是默认值。
- regex是另一种选项,这种选项指明highlight的边界由一个正则表达式确定。
- 这是一种非典型的高级选项。为了知道默认设置和fragmenters (and formatters)是如何配置的,
- 可以看看solrconfig.xml中的highlight段 -->
- <str name="f.answer.hl.fragmenter">regex</str>
- <str name="tie">0.1</str>
- </lst>
- </requestHandler>
2、创建类IMDisMaxQParserPlugin.java
- public class IMDisMaxQParserPlugin extends QParserPlugin
- {
- public static String NAME = "imdismax";
- public void init(NamedList args) {
- }
- public QParser createParser(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) {
- return new IMDisMaxQParser(qstr, localParams, params, req);
- }
- }
3、创建类IMDisMaxQParser.java 可以在里面增加中文分词
- public class IMDisMaxQParser extends DisMaxQParser
- {
- public IMDisMaxQParser(String qstr, SolrParams localParams,
- SolrParams params, SolrQueryRequest req)
- {
- super(qstr, localParams, params, req);
- if (null == this.qstr)
- {
- return;
- }
- Analyzer analyzer = req.getSchema().getQueryAnalyzer();
- if (null == analyzer)
- {
- return;
- }
- StringBuilder norm = new StringBuilder();
- try
- {
- //对question分词
- TokenStream tokens = analyzer.reusableTokenStream("question",
- new StringReader(this.qstr));
- tokens.reset();
- Token token = tokens.next();
- while (token != null)
- {
- norm.append(
- new String(token.termBuffer(), 0, token.termLength()))
- .append(" ");
- token = tokens.next();
- }
- }
- catch (Exception ex)
- {
- }
- if (norm.length() > 0)
- this.qstr = norm.toString();
- }
- }
发表评论
表情图标
![icon_biggrin.gif](https://i-blog.csdnimg.cn/blog_migrate/fdae2ee6389663d0e8e8cedf36783999.gif)
![icon_smile.gif](https://i-blog.csdnimg.cn/blog_migrate/4762a8ec9eb60433747467059e99f95e.gif)
![icon_sad.gif](https://i-blog.csdnimg.cn/blog_migrate/70e6f45409acf447b2fa7efdb0a3e40d.gif)
![icon_surprised.gif](https://i-blog.csdnimg.cn/blog_migrate/0bb8607afda370c63b5554b6e8885ffd.gif)
![icon_eek.gif](https://i-blog.csdnimg.cn/blog_migrate/395f56c5980fbb3e31f1ec85cb557b9e.gif)
![icon_confused.gif](https://i-blog.csdnimg.cn/blog_migrate/4dcbb665af73b7d0cf235c3bf4436f90.gif)
![icon_cool.gif](https://i-blog.csdnimg.cn/blog_migrate/e62600a0b5762b94396c35c27b2adda8.gif)
![icon_lol.gif](https://i-blog.csdnimg.cn/blog_migrate/d452feb9f9bd26ce6184b2f5623f1534.gif)
![icon_mad.gif](https://i-blog.csdnimg.cn/blog_migrate/af6d31ea11d11d9ab3266033918d6c46.gif)
![icon_razz.gif](https://i-blog.csdnimg.cn/blog_migrate/0fdad3ca8964cd28ec8625ec3ccd4cfb.gif)
![icon_redface.gif](https://i-blog.csdnimg.cn/blog_migrate/f0148983d7112d60e2c6749bfa31e8e6.gif)
![icon_cry.gif](https://i-blog.csdnimg.cn/blog_migrate/a038f8d127ac958f0fc9162c1828d461.gif)
![icon_evil.gif](https://i-blog.csdnimg.cn/blog_migrate/48463b748ef69aacec3dc9cc457c7d87.gif)
![icon_twisted.gif](https://i-blog.csdnimg.cn/blog_migrate/bdd2d55736d2015fe49de71c9e3202fe.gif)
![icon_rolleyes.gif](https://i-blog.csdnimg.cn/blog_migrate/4549eaaee5401b5a90f205c2b76a7e1f.gif)
![icon_wink.gif](https://i-blog.csdnimg.cn/blog_migrate/27adcb58c659b2eb3007508809b3ce32.gif)
![icon_exclaim.gif](https://i-blog.csdnimg.cn/blog_migrate/5a8c29aae2babf927bb7b1b173be274d.gif)
![icon_question.gif](https://i-blog.csdnimg.cn/blog_migrate/3c1dd00b897b54388a49dea885d8a014.gif)
![icon_idea.gif](https://i-blog.csdnimg.cn/blog_migrate/e764c68af0f4115017332777a9af276c.gif)
![icon_arrow.gif](https://i-blog.csdnimg.cn/blog_migrate/6fbac1a3fbe39ee7868ad025050f1598.gif)
字体颜色: 字体大小: 对齐:
提示:选择您需要装饰的文字, 按上列按钮即可添加上相应的标签
![](http://img.zemanta.com/pixy.gif?x-id=2e3cdfdf-906f-84f4-a505-f9073d3d5cdb)
评论