"contains" has to basically examine each and every term to see if it
matches. Say my
facet.contains=bbb. A matching term could be
aaabbbxyz
or
zzzbbbxyz

So there's no way to _know_ when you've found them all without
examining every last
one. So I'd try to redefine the problem to not require that. If it's
absolutely required,
you can do some interesting things but it's going to inflate your index.

For instance, "rotate" words (assuming word boundaries here). So, for
instance, you have
a text field with "my dog has fleas". Index things like
my dog has fleas|my dog has fleas
dog has fleas my|my dog has fleas
has fleas my dog|my dog has fleas
fleas my dog has|my dog has fleas

Literally with the pipe followed by the original text. Now all your
contains clauses are
simple prefix facets, and you can have the UI split the token on the
pipe and display the
original.

Best,
Erick


On Tue, Jul 21, 2015 at 1:16 AM, Lo Dave <dav...@hotmail.com> wrote:
> I found that facet contain search take much longer time than facet prefix 
> search. Do anyone have idea how to make contain search faster?
> org.apache.solr.core.SolrCore; [concordance] webapp=/solr path=/select 
> params={q=sentence:"duty+of+care"&facet.field=autocomplete&indent=true&facet.prefix=duty+of+care&rows=1&wt=json&facet=true&_=1437462916852}
>  hits=1856 status=0 QTime=5 org.apache.solr.core.SolrCore; [concordance] 
> webapp=/solr path=/select 
> params={q=sentence:"duty+of+care"&facet.field=autocomplete&indent=true&facet.contains=duty+of+care&rows=1&wt=json&facet=true&facet.contains.ignoreCase=true}
>  hits=1856 status=0 QTime=10951
> As show above, prefix search take 5 but contain search take 10951
> Thanks.
>

Reply via email to