Solr - 如何返回查询的最常见术语

时间:2015-01-09 09:07:49

标签: solr lucene solr4

在执行查询name:*b* AND country:China(名称包含' b')时,我希望solr返回每个不同字词的人数(来自中国)

Documents(name are whitespace delimiter toknized):
[ 
{name: 'sponge bob'},
{name: 'billy chen'},
{name: 'abie white'}
]

结果预期

[
{term: 'bob', matches: 100},
{term: 'billy', matches: 90},
{term: 'abie', matches: 80}
]

尝试:方面搜索

我尝试查询q=name:*b*+%3AAND+%3Acountry:China&facet=on&facet.field=name

结果包括无关的术语

[sponge,1, bob, 1, ...]

我怎样才能获得像sponge

这样不相关的词汇

2 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解您的用例,但TermsComponent可能符合您的需求。

它可以访问字段中的索引术语以及与每个术语匹配的文档数量。 (来自文档)。

在solrconfig.xml中配置组件后,查询应如下所示:

terms=true&terms.fl=name&terms.regex=.*b.*

答案 1 :(得分:0)

最后,我根据此补丁https://issues.apache.org/jira/browse/SOLR-1387修改了facet搜索实现,并为自己建立了一个全新的solr war