solr Transforming Result Documents 了解

3 篇文章 0 订阅

总的来说,通过这个功能可以对查询结果信息进行修改。


1.使用方法:fl=id,name,score,[shard]

一些的转换器允许,使用本地的参数,这种参数形式科颜氏键值对形式在中括号中:

fl=id,name,score,[explain style=nl]

fl=id,name,score,my_val_a:[value v=42 t=int],my_val_b:[value v=7 t=float]


2.可用转换器

2.1[value] - ValueAugmenterFactory

修改每个文件中相同的数据:

q=*:*&fl=id,greeting:[value v='hello']

其产生的结果可能是:

<result name="response" numFound="32" start="0">
<doc>
<str name="id">1</str>
<str name="greeting">hello</str></doc>
</doc>
...

默认返回值的类型是string,但是“t”参数可用使用int,double,date:

q=*:*&fl=id,my_number:[value v=42 t=int],my_string:[value v=42]


另外,你可以通过配置初始化ValueAugmenterFactory,配置这些请求参数,或者重写solrconfig.xml文件中默认的值:

<transformer name="mytrans2" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
<int name="value">5</int>
</transformer>
<transformer name="value" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
<double name="defaultValue">5</double>
</transformer>

value值要求有确定的值,而默认值可以使用,也可以被复写,通过使用v或者t的本地参数;


2.2 [explain] - ExplainAugmenterFactory

这种在调试模式使用:q=features:cache&wt=json&fl=id,[explain style=nl]

可使用的值style是:text,html,nl返回一个结果数据:

{ "response":{"numFound":2,"start":0,"docs":[
{
"id":"6H500F0",
"[explain]":{
"match":true,
"value":1.052226,
"description":"weight(features:cache in 2) [DefaultSimilarity], result of:",
"details":[{

默认的方式赔配置成为一个参数:

<transformer name="explain" class="org.apache.solr.response.transform.ExplainAugmenterFactory" >
<str name="args">nl</str>
</transformer>

<transformer name="explain" class="org.apache.solr.response.transform.ExplainAugmenterFactory" >
<str name="args">nl</str>
</transformer>


<transformer name="explain" class="org.apache.solr.response.transform.ExplainAugmenterFactory" >
<str name="args">nl</str>
</transformer>

<transformer name="explain" class="org.apache.solr.response.transform.ExplainAugmenterFactory" >
<str name="args">nl</str>
</transformer>

2.3[shard] - ShardAugmenterFactory
这种转换器增加关于shard的每个单独文件来自哪个分布式的请求;

ShardAugmenterFactory不支持请求参数,配置选项;

2.4[docid] - DocIdAugmenterFactory
这种转换器增加内部的lucene文件id到每个solr的文件中,这种方式主要用于调试模式下:同样也不支持请求参数,配置选项;

2.5[elevated] and [excluded]
这种转换器仅仅在使用Query Elevation Component.后才可以使用:

此外还有:[json] / [xml],[subquery]

3.Subquery result fields

fl=...title,categories:[subquery]&categories.fl=title&categories.q=...

部分文献阅读,




















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值