我将类别存储在文档中,这些文档应该在文档本身中加权,例如:餐厅 - 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?除了存储类似的条目之外还有其他方式吗?
答案 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中找到更多有效负载查询使用示例。