Thanks Eric for your kind help. The field I am using is of string type and I tried escaping also, but still facet.contains doesn't work for it.
As you said facet.contains is expensive, I tried facet.prefix in place and it is working fine for my requirement. Thanks again. Thanks & Regards -- Pritam Kute On Fri, Jul 3, 2015 at 10:13 PM, Erick Erickson <erickerick...@gmail.com> wrote: > Facets are collected over _tokens_, so the idea > of a token containing a space is kind of odd. You > _might_ be able to get past the parsing error by > escaping the space. > > But I doubt that's what you want. I'm assuming that > the field is a text field, broken up by whitespace > or similar. In that case, there's no token at all > that contains Student Name as that is two tokens. > So I don't think this does what you intend even if > you get past the parser. > > OTOH, if it's a string type you might get what you want > by escaping. > > Now, all that said, what is the point here? Contains > will always be more expensive as it has to iterate > all of the terms to see if any match. If you _know_ > the tokens, even facet.prefix would be better. Or > facet.query. Or.... > > Best, > Erick > > > > On Thu, Jul 2, 2015 at 11:56 PM, Pritam Kute > <pritam.k...@hotwaxsystems.com> wrote: > > Hello All, > > > > I am new user to solr and using solr 5.2.0 setup. I am trying to create > > multiple types of facets on same field. I am filtering the facets by > using " > > *facet.contains*". The following is the data into field. > > > > roles : { > > "0/Student Name/", > > "1/Student Name/1000/", > > "0/Center Name/", > > "1/Center Name/1000/" > > } > > > > I am trying to add facet field like following: > > > > query.addFacetField("{!ex=role"+i+" key=role"+i+" > > facet.contains=/"+roleType+"/}roles"); > > > > where, roleType is iterated and it contains values "Student Name", > "Center > > Name" etc. and value of i is 1. > > > > But I am getting error as: > > > > org.apache.solr.search.SyntaxError: Expected identifier at pos 63 > > str='{!key=role1 facet.contains=/Student Name/}roles' > > > > It works nicely if there is no any space in the string. i.e. if I index > doc > > as "1/StudentName/1000/". > > > > It would be great help if somebody helps me out in this issue. Please > > replay if I am missing something in this. Or point me to best practice of > > doing hierarchical faceting in solr. > > > > Thanks in advance. > > > > Thanks & Regards, > > -- > > Pritam Kute >