Glad it's working out. I should have added that for a small
set of distinct terms the performance diff between
contains and prefix is probably um-measurable. If your
field has 100 distinct tokens (number from thin air) well,
computers are really fast....

Best
Erick

On Sat, Jul 4, 2015 at 1:45 AM, Pritam Kute
<pritam.k...@hotwaxsystems.com> wrote:
> 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
>>

Reply via email to