I used latest acts_as_solr   to index a number of sample  'sale' items.
Those item documents has a facet field, Its name is cat2_facet.

There are a number of documents that have cat2_facet= "Shoes" and
There are a number of documents that have cat2_facet= "*Top Wear*". The
problem is the space between *Top and Wear*.

results = Item.find_by_solr("[* TO *]",
{:facets=>{:zeros=>false,:fields=>[:cat1, :cat2] }})
results.facets["facet_fields"]

return {"cat1_facet"=>{"electronics"=>5, "clothing"=>5},
*"cat2_facet"=>{"Bottom
Wear"=>1, "Top Wear"=>2*, "Shoes"=>2, "HDTV"=>1, "Camera"=>4}}

When I issue the query below

results = Item.find_by_solr("[* TO *] AND cat2:Shoes",
{:facets=>{:zeros=>false,:fields=>[:cat1, :cat2] }})

It returned correct number of hits.  However when i run the query

results = Item.find_by_solr("[* TO *] AND cat2:*Top Wear*",
{:facets=>{:zeros=>false,:fields=>[:cat1, :cat2] }})

It return zero hit (incorrect).

I even tried to put quote and double quote for the facet value

@results = Item.find_by_solr("[* TO *] AND cat2:'*Top Wear'*",
{:facets=>{:zeros=>false,:fields=>[:cat1, :cat2] }})

And it still does not work. What should I do to remedy this space issue?

Let me also attach the  translated solr query I saw in solr log file

INFO: [] webapp=/solr path=/select
params={facet=true&fl=pk_i,score&facet.mincount=1&q=([*+TO+*]+AND+cat2_facet:Shoes)+AND+(type_s:Item)&facet.limit=-1&facet.field=cat1_facet&facet.field=cat2_facet&qt=standard&wt=ruby}
*hits=2* status=0 QTime=1

Jun 5, 2009 7:54:23 PM org.apache.solr.core.SolrCore execute

INFO: [] webapp=/solr path=/select
params={facet=true&fl=pk_i,score&facet.mincount=1&q=([*+TO+*]+AND+cat2_facet:Top+Wear)+AND+(type_s:Item)&facet.limit=-1&facet.field=cat1_facet&facet.field=cat2_facet&qt=standard&wt=ruby}
*hits=0* status=0 QTime=10

Thank you.
Thanh

Reply via email to