0

我正在使用 Solr(可能会迁移到 Elasticsearch)来索引用户可以搜索的文档。数据来自 MySQL,它接受用户的写入。可以单击每个搜索结果以查看其详细信息,这很常见。详细信息页面从 MySQL 获取所有数据。

由于详细信息页面显示的几个字段已经在 Solr 中建立了索引,那么将所有字段简单地存储在 Solr 中而不访问数据库会更好吗?详细信息页面已经必须向 Solr 查询更多类似这样的建议。

我敢肯定,目前这两种方式都不是问题。但是大多数中等或高流量的网站是做什么的?具有类似功能的网站示例是报纸。Stackoverflow 本身有些不同,因为数据更加动态,因为用户可以不断添加对问题的回复。

实际上,我从来没有从 Solr 提供数据,直到最近,当我决定添加一个功能,如果数据是从 Solr 而不是 MySQL 提供的,该功能的实现会更简单,但我不知道这是否是个好主意.

你们有什么感想?谢谢!

4

1 回答 1

0

Solr/Elasticsearch 支持此功能。Solr/ES 中有两种类型的字段 - 索引和存储。

索引字段是搜索的字段 - 这些会产生匹配项。另一方面,存储字段只是容器。

将非索引值存储为 Solr 文档中的存储字段是很常见的(至少在我的经验中)。这有助于节省往返数据存储以获取详细结果的时间。

如果您想具有搜索和显示功能,可以将字段标记为已存储和已索引。

您可能会问,为什么不索引所有内容?因为,索引字段除了增加索引时间外,还会增加占用磁盘空间的索引大小。

因此,我鼓励使用 Solr 作为数据存储(除非每个文档都有大量非索引数据)。如上所述,明智地选择您的索引,您将受益于节省重复的数据库调用。

于 2013-11-03T14:03:58.133 回答