【问题标题】:Solr/Lucene: Indexing facet valuesSolr/Lucene:索引构面值
【发布时间】:2011-01-19 22:27:44
【问题描述】:

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

颜色

  • 红色 (7825)
  • 橙色 (2343)
  • 绿色 (843)
  • 蓝色 (5412)

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

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

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

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

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

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

有这方面的经验吗?您认为这将如何影响性能?

提前致谢!

【问题讨论】:

  • 简短回答:是的,没关系。长答案:当我回家时:-)

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


【解决方案1】:

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

在我们的系统中,我们索引 ID 的 Lucene 而不是实体的名称,这正是您所说的原因。此外,我们的实体有一堆与之关联的属性,它们没有被索引,所以无论如何我们都必须访问数据库才能获取它们。

就性能而言,ID 的刻面不会明显变慢或变快。就数据库查找而言,这应该没什么大不了的,特别是如果您一次只拉下几十个方面。如果出现问题,您始终可以使用缓存来加快速度。

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 2010-11-26
    • 2013-11-06
    • 2016-01-20
    • 2016-08-04
    • 2014-08-27
    • 2012-03-26
    • 1970-01-01
    相关资源
    最近更新 更多