Solr

时间:2016-06-14 11:05:53

标签: solr facet

我必须在Solr中索引和搜索文档。我还需要过滤,分面和分页功能。我的(简化)理想文档结构如下:

<doc>
  <id>1</id>
  <title>A title</title>
  <description>A description...</description>
  <category>speech</category>
  <sentences>
    <sentence>
      <n>1</n>
      <from>00:00:00</from>
      <to>00:00:10</to>
      <tag>presentation</tag>
      <transcript>Hello, my name is Alberto!</transcript>
    </sentence>
    <sentence>
      <n>2</n>
      <from>00:00:10</from>
      <to>00:00:15</to>
      <tag>talk</tag>
      <transcript>and blah blah blah</transcript>
    </sentence>
  </sentences>
</doc>

文档可以有很多句子。每个句子都可以有多个标签。

我想在titledescriptiontranscript上执行搜索,过滤tag(句子级别)和category(根级别),并在categorytag上获得分面。

一些要求是:

  • 分面应该根据文件而不是句子返回数字
  • 过滤不应该给出假阳性结果。例如,如果我搜索q=text:"Alberto&fq=tag:presentation,则应返回文档1。但如果我搜索q=text:blah&fq=tag:presentation,则不应返回任何内容。

我找到的唯一可行解决方案是使用分组group=true&group.facet=true)并展平文档结构。这里的问题是我必须在每个文档(也是识别句子的文档)中复制分面字段(例如category),否则分面不能正常工作。

同样重新索引理想文档需要删除文档的每个句子,然后重新索引文档组。

有更好的方法吗?

0 个答案:

没有答案