【问题标题】:How to return column that matched the query in Solr..?如何返回与 Solr 中的查询匹配的列..?
【发布时间】:2012-03-09 05:00:27
【问题描述】:

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

假设我已经从我的一个表中索引了 4 列..!!..我只希望只有那些包含我的查询词的列 被返回作为响应..!!..这可能吗..??

例如:

我有一张 cars 表格,其中包含以下列:name、displayName、description、extra ..!!

现在我做一个查询,比如:

localhost:8983/solr/select?q=maruti&wt=json

现在某些行中只有 name 可能包含单词“maruti

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

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

我怎样才能做到这一点..??

【问题讨论】:

  • 为什么这个问题被否决了..??..请具体说明..!!

标签: database solr


【解决方案1】:

您可以使用 Solr 4 和自定义转换器来做到这一点 - 我对文档的阅读似乎表明了这一点。但我认为这将是相当多的工作。最终,您可能必须编写一个前端过滤器,但对于复杂的查询,这将是困难的。

更新: 以下是在 Solr 中如何在没有自定义转换器等的情况下执行此操作。启用所有四列的突出显示:

hl=on&hl.fl=name,displayName,description,extra

Solr 将返回一个“突出显示”结构,其中包含与查询匹配的键和字段。您还将获得突出显示的 sn-ps,是否使用它们取决于您。有关其他参数,请参见此处:http://wiki.apache.org/solr/HighlightingParameters

【讨论】:

  • 是的..我正在考虑编写前端过滤器...感谢回复...我会看看该怎么做..!!
  • @RamandeepSingh,请查看我的更新答案。我想它回答了你的问题!
  • 这需要存储所有 4 列。如果我有 100 列怎么办?
  • @TerenceYeong,我不太确定你的问题是什么。存储 100 个字段对您来说是个问题吗?还是您担心hl.fl 参数?它可以接受通配符。
  • 嗨大卫,我担心存储 100 个字段的缺点,特别是硬盘空间和搜索性能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-10
  • 1970-01-01
  • 2014-02-08
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多