SOLR相关短语搜索

时间:2012-01-26 14:29:59

标签: java solr

我正在按实体ID索引与实体相关的用户评论。注释架构示例:

<fields>
   <field name="entity_id" type="sint" indexed="true" stored="true" default=0/>
   <field name="comment_id" type="sint" indexed="true" stored="true" default=0/>
   <field name="comment_text" type="text" indexed="true" stored="true" default=""/>
</fields>

现在,我希望能够查询特定实体的所有评论,并获取在评论集中重复多次的短语。

评论示例:

  • 这是好地方
  • 您应该访问XYZ。 很棒的地方 到蜜蜂
  • 如果你想花费很棒的时刻,这就是蜜蜂的地方
  • 伟大的人民和伟大的地方

正如您在上面的示例中所看到的,好地方重复多次,并且放置到蜜蜂。我需要从SOLR返回的这些短语,我尝试过SOLR Facets,但我设法只获得单词,而不是短语(Building a tag cloud with solr)。

我正在尝试的查询是这样的:

http://localhost:8984/solr/select/?qt=tvrh&q=entity_id:12345&start=0&rows=0&facet=true&facet.field=comment_text&facet.minCount=1&facet.limit=50

结果是......

<lst name="facet_counts">
  <lst name="facet_queries"/>
  <lst name="facet_fields">
  <lst name="comment_text">
    <int name="epic">22</int>
    <int name="bar">18</int>
    <int name="you">16</int>
    <int name="quiver">15</int>
    <int name="happi">14</int>
    <int name="your">14</int>
    <int name="hour">13</int>
    <int name="drink">12</int>
    <int name="come">11</int>
    <int name="get">11</int>
    <int name="free">9</int> ...

注意:这些结果与之前发布的示例评论无关:)。

感谢。

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用ShingleFilterFactory?使用此过滤器,您可以将标记组合为短语以进行索引。您可以创建一个只是comment_text副本的字段,在字段上使用此过滤器,然后从该字段获取构面