Solr - 如何对多值字段的字段条目进行加权?

时间:2013-08-28 07:33:36

标签: solr categories weighted

我将类别存储在文档中,这些文档应该在文档本身中加权,例如:餐厅 - 0.5(= 50%),酒吧 - 0.25,音乐 - 0.25。不幸的是,我是solr的新手,并不知道它可能属于solr中的哪个功能。

文件如下:

    <str name="id">C1</str>
    <str name="name">Wine</str>
    <str name="type">Compass</str>
    <str name="geo">51.049842,13.740707</str>
    <double name="radius">5.0</double>
    <arr name="cat">
      <str>Restaurant</str>
      <str>Restaurant</str>
      <str>Bar</str>
      <str>Music</str>
    </arr>

我如何查询预期的weitght?除了存储类似的条目之外还有其他方式吗?

1 个答案:

答案 0 :(得分:1)

您可以使用Solr / Lucene的Payload功能实现此目的。 Getting Started with Payloads会给你一般的想法。 带有效负载的文档如下所示:

<str name="id">C1</str>
<str name="name">Wine</str>
<str name="type">Compass</str>
<str name="geo">51.049842,13.740707</str>
<double name="radius">5.0</double>
<arr name="cat">
  <str>Restaurant|50</str>
  <str>Bar|25</str>
  <str>Music|25</str>
</arr>

索引文档后,您可以为文档创建自定义分数,该分数可以仅基于有效负载或与lucene默认跨度分数组合。

您可以在lucene-solr/tests中找到更多有效负载查询使用示例。