我使用Solr(可能转移到Elasticsearch)来索引用户可以搜索的文档。数据来自MySQL,它接受用户的写入。可以点击每个搜索结果来查看其详细信息,这是常见的。详细信息页面从MySQL获取所有数据。
由于详细信息页面显示的几个字段已经在Solr中编入索引,是否最好只将所有字段存储在Solr中而不是单击数据库?详细信息页面必须查询Solr以获得更多类似的建议。
我相信现在它不会成为一个问题。但大多数中等或高流量网站做什么?具有类似功能的网站的示例是报纸。 Stackoverflow本身有些不同,因为数据更加动态,因为用户可以不断添加对问题的回复。
我实际上从来没有服务过Solr的数据直到最近,当我决定添加一个功能时,如果数据是从Solr而不是MySQL提供的,那么实现会更简单,但是我不知道这是不是很好想法与否。
你们觉得怎么样?谢谢!
答案 0 :(得分:0)
Solr / Elasticsearch支持此功能。 Solr / ES中有两种字段 - 索引和存储。
索引字段是搜索的字段 - 这些字段产生匹配。另一方面,存储的字段只是容器。
将非索引值存储为Solr文档中的存储字段是非常常见的(至少根据我的经验)。这有助于保存到数据存储的往返,以获得详细结果。
如果您想要搜索和显示功能,可以将字段标记为已存储和已建立索引。
为什么不索引一切,你可能会问?因为索引字段会占用索引大小,这会占用磁盘空间,除了增加索引时间。
因此,我鼓励将Solr用作数据存储(除非每个文档都有大量非索引数据)。如上所述,明智地选择您的索引,您将通过保存重复的数据库调用来获得。