首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按字段分组的Solr结果(但基于方面的分组)

按字段分组的Solr结果(但基于方面的分组)
EN

Stack Overflow用户
提问于 2016-11-01 17:24:02
回答 1查看 489关注 0票数 0

我使用Apache Lucene Solr来索引和搜索数据。在这里,我尝试构建自动完成操作:

我有文件,比如人。假设一个人是由文档、id、姓名、工作、国籍等字段描述的。(Nick Fury,博士,英语/ John Dock,教师,多米尼加/ Jim Tyson,码头工人,波兰)。当我写"do“时,我们希望建议是:

-作业(标签)

医生

码头工人

-国籍(标签)

多米尼加

-名称(标签)

约翰·多克

所以,我们想要像Suggester这样的东西,我试过了,但是结果是根据匹配的字段进行分组的,总是按照一定的顺序:首先是匹配的工作,然后是国籍(如果存在的话),如果可能的话,在类别中我们可以按计数或相关性进行排序。

然后,我尝试了3个方面。但我找不到如何对方面进行分组,以便获得工作、国籍……全部归类在一起。

有没有办法做到这一点?在solr irc中,有人回答说我必须使用2个查询。我该怎么做呢?

它类似于这个http://www.cominvent.com/2012/01/25/super-flexible-autocomplete-with-solr/,但是在那里,只搜索一个字段,然后按类别进行分组。在我的示例中,输入"co“returning:

-类别

国家/地区

大洲

-国家和城市

哥伦比亚

哥斯达黎加..。

EN

回答 1

Stack Overflow用户

发布于 2016-11-01 23:14:29

您可以为"suggest“组件中的每个字段创建不同的suggesters:

代码语言:javascript
复制
<searchComponent name="suggest" class="solr.SuggestComponent">
   <lst name="suggester">
      <str name="name">job</str>
      <str name="field">job</str>
      ...
   </lst>
<lst name="suggester">
      <str name="name">nationality</str>
      <str name="field">nationality</str>
      ...
   </lst>
</searchComponent>

(您可以添加更多建议...)

然后是一个"/suggest“请求处理程序:

代码语言:javascript
复制
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
  <lst name="defaults">
      <str name="echoParams">all</str>
      <str name="wt">json</str>
      <str name="indent">false</str>
    <str name="suggest">true</str>
    <str name="suggest.count">10</str>
  </lst>
  <arr name="components">
    <str>suggest</str>
  </arr>
</requestHandler>

然后在客户端:

代码语言:javascript
复制
http://localhost:8983/solr/collection1/suggest?suggest.q=co&suggest.dictionary=job&suggest.dictionary=nationality
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40357188

复制
相关文章

相似问题

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