首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr -如何返回查询中最频繁的术语

Solr -如何返回查询中最频繁的术语
EN

Stack Overflow用户
提问于 2015-01-09 09:07:48
回答 2查看 522关注 0票数 0

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

代码语言:javascript
复制
Documents(name are whitespace delimiter toknized):
[ 
{name: 'sponge bob'},
{name: 'billy chen'},
{name: 'abie white'}
]

预期结果

代码语言:javascript
复制
[
{term: 'bob', matches: 100},
{term: 'billy', matches: 90},
{term: 'abie', matches: 80}
]

调度:面搜索

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

结果包括不相关的条件,如

代码语言:javascript
复制
[sponge,1, bob, 1, ...]

我怎么能得到像sponge这样不相关的术语呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-15 15:58:55

最后,我基于这个补丁https://issues.apache.org/jira/browse/SOLR-1387修改了facet搜索实现,并为自己构建了一个全新的solr。

票数 0
EN

Stack Overflow用户

发布于 2015-01-09 14:08:06

我不确定我是否正确地理解了您的用例,但是TermsComponent可能适合您的需要。

它“提供对字段中索引项的访问以及与每个术语匹配的文档数量”(从docs)。

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

代码语言:javascript
复制
terms=true&terms.fl=name&terms.regex=.*b.*
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27857051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档