solr的copyFeild用法(改变各个feild的权重,修改打分结果)-注意!
2014-07-07 17:50
225 查看
copyField的dest字段all本身有分析器处理:假设为mmseg4j
name,title,description三个字段都复制到all字段上:其中title和description都是mmseg4j分析器的字段类型;name是string类型;
搜索all上的“黄海波视频”-------------则出现的结果是:
'parsedquery'=>'(+DisjunctionMaxQuery((((personName:黄海波视频)^10.0) | (description:黄海波 description:视频) | ((title:黄海波 title:视频)^1.5)))
DisjunctionMaxQuery((all:"黄海波 视频")))/no_coord',
结果是;personName只有黄海波,因此导致针对personName提高权重这个指标就没有起作用!!
------------------------------------------------------------------------------------------------------
解决办法:把name字段的fieldType也修改为mmseg4j的分析器的feildType:
搜索all上的“黄海波视频”-------------则出现的结果是:
'parsedquery'=>'(+DisjunctionMaxQuery((((personName:黄海波 personName:视频)^10.0)
| (description:黄海波 description:视频) | ((title:黄海波 title:视频)^1.5))) DisjunctionMaxQuery((all:"黄海波 视频")))/no_coord',
结论是:personName能搜索到结果,权重自然起作用!!
说明:copyfeild的搜索中,仍然是分别将搜索串放在被复制的feild中去搜索,而且采用的分析器不是all的分析器而是被复制的各个feild自己的分析器来处理。(query串都会采用被复制的source feild中分析器处理后再在该feild上搜索)
name,title,description三个字段都复制到all字段上:其中title和description都是mmseg4j分析器的字段类型;name是string类型;
搜索all上的“黄海波视频”-------------则出现的结果是:
'parsedquery'=>'(+DisjunctionMaxQuery((((personName:黄海波视频)^10.0) | (description:黄海波 description:视频) | ((title:黄海波 title:视频)^1.5)))
DisjunctionMaxQuery((all:"黄海波 视频")))/no_coord',
结果是;personName只有黄海波,因此导致针对personName提高权重这个指标就没有起作用!!
------------------------------------------------------------------------------------------------------
解决办法:把name字段的fieldType也修改为mmseg4j的分析器的feildType:
搜索all上的“黄海波视频”-------------则出现的结果是:
'parsedquery'=>'(+DisjunctionMaxQuery((((personName:黄海波 personName:视频)^10.0)
| (description:黄海波 description:视频) | ((title:黄海波 title:视频)^1.5))) DisjunctionMaxQuery((all:"黄海波 视频")))/no_coord',
结论是:personName能搜索到结果,权重自然起作用!!
说明:copyfeild的搜索中,仍然是分别将搜索串放在被复制的feild中去搜索,而且采用的分析器不是all的分析器而是被复制的各个feild自己的分析器来处理。(query串都会采用被复制的source feild中分析器处理后再在该feild上搜索)
相关文章推荐
- solr的copyFeild用法(改变各个feild的权重,修改打分结果)-注意!
- mysql GROUP_CONCAT 用法;修改数据库中group_concat的返回结果的长度限制
- Solr4:查询参数fq的用法(对结果进行过滤;两组关键词组合查询)
- struts改变应用路径后,web程序中需要注意修改的几个地方
- Solr 多字段、打分规则、权重和实时索引同步
- mysql的in和not in的用法(特别注意not in结果集中不能有null)
- 注意Transact-SQL中Case函数的两种用法导致不同的结果集
- java中可以让实例改变了类Feild(java这么干就是一个错误,你看到了就当做是类在该修改或这个类Feild)
- solr配置的 时候的注意事项以及修改tomcat端口号的方法
- 搜索引擎对页面各个元素的权重比例打分排序
- solr入门之权重排序方法初探之使用edismax改变权重
- JAVA编写的浏览器,在别人的基础上做了些许修改,实现了前进,后退,刷新功能,添加了一个搜索框,具体情况在运行结果中的文件-->注意中
- Solr之查询时设置字段的boost值,改变默认打分排序
- solr多字段查询,打分权重
- solr注意事项-solrconfig中的默认搜索域会覆盖schema中的默认搜索域,注意copyfeild中被corp的字段搜索
- Solr查询时设置字段的boost值,改变默认打分排序
- 如何单独编译EFL各个库(注意configure的结果)
- solr注意事项-solrconfig中的默认搜索域会覆盖schema中的默认搜索域,注意copyfeild中被corp的字段搜索
- solr特点三: boost(改变默认打分排序)