Solr / Lucene:索引方面值

时间:2010-02-23 03:57:29

标签: lucene solr lucene.net faceted-search solrnet

例如,假设我有以下方面:

颜色

  • 红色(7825)
  • Orange(2343)
  • 格林(843)
  • 蓝色(5412)

在我的数据库中,颜色将是一个表格,每种颜色都有一个主键和一个名称/值。

使用Solr / Lucene进行索引时,在我看到的所有示例中,值都是索引而不是主键。因此,如果我按红色过滤,我会得到如下内容:

http://www.example.com/search?color=Red

我想知道,在显示构面值时,改为索引主键并从数据库中检索值是明智的吗?所以我会改为这样:

http://www.example.com/search?color=1

“1”表示红色的主键。我想知道我是否应该采用这种方法,因为我的许多方面的值经常改变,但主键保持不变。此外,索引必须与数据库同步。

对此有任何经验吗?您如何看待这会影响性能?

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果您希望您的实体经常更改,则更容易为ID编制索引,当您获得facet结果时,请在数据库中进行查找以获取颜色的名称。这样,更改为颜色不需要在索引中更新受影响的文档。

在我们的系统中,我们索引ID的Lucene而不是实体名称,完全是因为您说明的原因。此外,我们的实体有一堆与它们相关联的属性,这些属性没有编入索引,因此无论如何我们都必须点击数据库来获取它们。

就性能而言,ID的刻面将不会明显变慢或变快。就数据库查找而言,它应该不是什么大问题,特别是如果你一次只能减少数十个方面。如果它成为一个问题,你总是可以使用缓存加快速度。