如何返回与Solr中的查询匹配的列?

Ram*_*ngh 2 database solr

我正在使用apache Solr搜索我的数据库.. !!

假设我已经从我的一个表中索引了4列.. !! ..我只是想要只返回包含我的查询词的那些列作为响应.. !! ..是可能的.. ??

例如 :

我有一个带列的桌:名字,displayName,描述,额外 .. !!

现在我进行查询,例如:

localhost:8983/solr/select?q=maruti&wt=json
Run Code Online (Sandbox Code Playgroud)

现在有些行中只有名称 可能包含" maruti " 这个词

所以,作为回报,我只想要名称(以及其他一些固定字段,如ID)..

同样,如果描述包含这个词,那么只应该返回描述 ..而不是其他列.. !!

我怎么能实现这个.. ??

Dav*_*ber 5

您可以使用Solr 4和自定义变换器执行此操作 - 我对文档的阅读似乎表明了这一点.但我认为这将是一项相当多的工作.最终,您可能必须编写前端过滤器,但对于复杂查询而言,这将很困难.

更新:以下是在没有自定义变换器等的情况下在Solr中执行此操作的方法.为所有四列启用突出显示:

hl=on&hl.fl=name,displayName,description,extra
Run Code Online (Sandbox Code Playgroud)

Solr将返回一个"突出显示"结构,其中包含与查询匹配的键和字段.您还将获得突出显示的片段,无论您使用它们都取决于您.请参阅此处了解更多参数:http://wiki.apache.org/solr/HighlightingParameters