views:

41

answers:

1

I am having one heck of a time with my implementation.

We have a solr server running. We have 3 cores, and for simplicty let's call them "Members", "Businesses", and "Products"

I was attempting to use solrnet, but it does not support sharding. So, I am dreading that I will have to build the url myself.

So, I used the admin tool to build a few sample url's for queries when I noticed a problem. Solr does an "equals" not a "contains" and it is case sensitive. I know I'm probably going about this all wrong.

So, I've read I need to set the qt param to "dismax", only when I search the member's core only, through the admin tool, I get "undefined field price"....my member doesn't have a price field. My product does though.

I need to do the following with my query.

  1. Searching across multiple cores (sharding)
  2. Case insensitivity
  3. Contains word instead of equals word
  4. Search multiple fields
  5. Declare priority of the fields (Search on on name first, then description, etc)

I probably have my query all wrong, but here's what it looks like (servername changed to protect the innocent) Name field is actually a concatonation of the user's first and last name....so I was trying to see if dismax would see if the name contains the word jim (case insensitive).

mysolrserver.mydomain.int:8080/solrQA/select?indent=on&version=2.2&q=Name:jim&fq=&start=0&rows=10&fl=*%2Cscore&qt=dismax&wt=standard&explainOther=&hl.fl=&shards=mysolrserver.mydomain.int:8080/Members,mysolrserver.mydomain.int:8080/Businesses

Any help would be greatly appreciated.

+3  A: 
  1. SolrNet and sharding: did you try the ExtraParams property?
  2. Case insensitivity: this is handled by the LowerCaseFilterFactory
  3. Contains word: this is handled by the tokenizer, for example the WhitespaceTokenizerFactory.
  4. Search multiple fields and boosting: since you're using dismax, see the qf parameter.
Mauricio Scheffer