Question

I just started exploring SolrNet. Previously I have been using MSSQL FULL TEXT.

In sql server, my query make full text searches and also have multiple joins and Where clauses. I am also using custom paging to return only the 10 rows out of millions.

I have read few solrNet docs and run sample apps provided on the blogs. All worked well so far. Just need to get an idea, What do I do with JOINS and WHERE clauses??

e.g. If user searches for Samsung, db would return 100k records, but if users searches for Samsung && City='New york' && Price >'500' then he would only get couple of thousands records.

  • Do I add all columns in Solr and write WHERE clauses in Solr?
  • What do I do about SQL JOINS?

Thanks in Advance!

Was it helpful?

Solution

There are no joins in Solr. From the Solr wiki:

Solr provides one table. Storing a set database tables in an index generally requires denormalizing some of the tables. Attempts to avoid denormalizing usually fail.

About WHERE clauses (i.e. filtering), see Querying in SolrNet, Solr query syntax, and Common Solr query parameters.

OTHER TIPS

The Solr equivalent of your where clauses is to map your columns to fields and run queries based on the query syntax. A query like your example:

 Samsung && City='New york' && Price >'500' 

could be translated to something like this in Solr:

 q=Samsung AND city:"new york" AND price:[500 TO *]

You need to take some care when you map your database to a Solr schema, specifically you will probably have to denormalize your data. See this page on the Solr wiki for more information. Basically, you can't really do complex JOINs in Solr. It's a "flat" index.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top