Solr(或其他分面搜索引擎)中的搜索/导航,正确的方法是什么?

时间:2017-04-11 09:04:07

标签: mysql solr seo faceted-search

我对使用Mysql的地方应该结束以及SOLR应该从哪里开始有点困惑。

我有很多关系数据(就像电子商务网站一样,像亚马逊一样)。

我开始将它放入mysql并遇到大小/速度的问题,索引对这么多数据没有帮助。所以,我把所有这些数据都放到了SOLR中,而且速度非常快。在某种程度上,SOLR就像我目前的MYSQL数据库的缓存(它包含由ID链接的多个关系表)。

事情是我对一堆事情感到困惑。

1)是否需要mysql数据库?我可以轻松编辑并将数据添加到SOLR表中吗? Mysql数据库只是增加了更多的开销吗?

2)如何最好地进行分面并将其用于搜索导航?我目前将整个mysql数据库统一到一​​个平面solr文件中。在考虑条目可能具有的多对多关系时,如何才能做到这一点?是否应该使用PathHierarchyTokenizer在SOLR中完成所有这些操作?我应该将多个方面塞进一个字段吗?

3)是否需要在MYSQL中存储类别/面板,以便可以创建这些页面的SEO标题?我猜这不可能在SOLR中完成,因为没有真正的页面概念作为方面?似乎需要某种静态存储/缓存的方面,可以添加额外的信息,似乎有意义,这不会在SOLR中完成?

4)或者我应该使用SOLR作为我的MYSQL数据库的缓存?所以我从mysql获得所有类别菜单,但是当URL查询发生时,它从SOLR获得所有产品?

很想听到别人对此的想法,因为虽然solr很好而且速度很快,但是与DB有很大的重叠,而且我很难在每个人都有意义的地方使用它。

1 个答案:

答案 0 :(得分:0)

  

是否需要mysql数据库?

如果你需要事物之间的关系,那么RDBMS优于Solr,它对其世界有一个平坦的,非规范化的视图。

Solr通常不被视为记录来源。如果你这样使用它,所有字段都需要"存储"。考虑如何备份和恢复数据。

作为一个很好的起点,请使用Solr来做好它的搜索。索引您需要索引的内容,存储您需要存储的内容。请记住,Solr索引在分析时会变得非常大,而较大的索引效率会降低。