【问题标题】:Use SOLR on Mysql relational database. Use SOLR for only product table在 Mysql 关系数据库上使用 SOLR。仅对产品表使用 SOLR
【发布时间】:2010-02-03 05:23:05
【问题描述】:

对于 SOLR 的使用在哪里结束以及从哪里开始,我有点困惑。

我将 php 与关系 mysql 数据库一起用于购物网站,其中所有表都与产品表相关,并在查询时加入表。不用说它太慢了!

例如

  • 类别表 - catid、catname、catdesc
  • 品牌表 -brandid、brandname、branddesc
  • 产品表 - productid、productname、productdesc、catid、brandid
  • (我也使用价格范围等)

我想知道是否应该使用 SOLR 来索引整个关系模式,或者是否只索引产品表并让我的应用程序像现在一样工作。

如果我只是将产品表切换为使用 SOLR,是否有任何警告?

例如在 mysql 中,我可以在加入品牌表时进行全文搜索。这将允许品牌也被搜索。是否可以通过将产品表切换到 SOLR 来实现相同的目标?还有其他我应该注意的警告吗?

我还想为“搜索”创建一个新表。这将允许我通过以下方式在 mysql 表中使用关键字:

搜索表 - 搜索词(例如口红)、同义词(例如口红、嘴唇等)

即。这将允许我同时搜索多个术语 - 也许是使用 SOLR 方面而不是将搜索存储在 mysql 中的好时机?或者我应该只使用 mysql 来存储搜索并从 SOLR 中提取产品?

非常感谢任何帮助

【问题讨论】:

    标签: solr


    【解决方案1】:

    无需切换

    您不想“切换”——就像在 MySQL 中使用全文索引(或使用像 Sphinx 之类的东西)一样,全文索引与数据库表是分开的。

    您想要做的是找出您正在搜索的内容并在 Solr 中对其进行索引——它很可能只是产品。这当然是简单的第一步。

    基本上你会:

    • 将适当的列索引到 Solr 中
    • 使用 Solr 进行搜索
    • 使用 Solr 结果指向数据库中的记录

    我比 PHP 更喜欢 Ruby 和 Java,但您基本上会与 Solr 交谈以进行全文搜索并使用它来查找要显示的记录。

    【讨论】:

    • 感谢您这么快的回答,你让我很开心 :)
    • 约翰说的很对。另请查看 Solr 附带的 /example 应用程序,它可以帮助您考虑特定用例,因为它设置为处理产品搜索。
    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    相关资源
    最近更新 更多