12
votes

I was browsing some questions here concerning MySQL and faceted searches and I saw one response that suggested the use of Solr.

In my MySQL database, I have many tables for products, suppliers, messages, users, etc - all interconnected. How would I use Solr to do faceted searches for products? From what I understand, I'd have to keep feeding Solr product data from MySQL - but how do I deal with indexing the data? Do index right after adding a new product? Do I batch index? How do I deal with Solr accurately representing data that is found in my MySQL database? (inserts, deletes, etc)

Thanks in advance.

3
What language and framework is your application built in? There are a lot of good Solr clients out there (e.g. Sunspot for Ruby apps) which can handle this kind of denormalizing and updating pretty transparently. - Nick Zadrozny
I'm currently using the CodeIgniter framework in PHP. Anything you could suggest me? - RS71

3 Answers

8
votes

Take a look at data import handler. Apart from batch update you can also trigger update by calling update request handler. You would have to call it from your application but you can also create your own custom update request handler that would fit your needs.

0
votes

If using data import handler, use the delta import command.

0
votes

SOLR is a JAVA application but you can access it using any language that provides HTTP GET/POST functionality.

for your need you should refer to http://wiki.apache.org/solr/DataImportHandler but before jumping on the Indexing part go through the tutorial at lucene.apache.org /solr /tutorial.html