[ 
https://issues.apache.org/jira/browse/SOLR-4701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13637502#comment-13637502
 ] 

Linbin Chen commented on SOLR-4701:
-----------------------------------

frange now has use PostFilter, but CollectorFilterQParserPlugin create other  
collector filter query.

approach case:

case 1: in query

like sql in operate "select * from a where user=123 and status in (1,2,3)"

a field 'status' has value mybe (0,1,2,3,4,5,6,7,8,9) 10 kind status value.

has 10 million row index。avg 1 million per one of 'status' field value.

user:123 maybe has 2k row. status:\(1 OR 2 OR 3\) has 3 million row.

user:123&fq={!cf name=in}status:\(1,2,3\) faster than user:123 AND status:\(1 
OR 2 OR 3\)

maybe can use filterCache status:(1 OR 2 OR 3) query,but 10 kind status 
combination,create C(n,0)+C(n,1)+...+C(n,n)=low(2,n), n=10, will has 1024 
OpenBitSet. 

filterCache 1024 OpenBitSet(maxSize=10 million) RAM = 1.25G

cf.in use RAM = 10M*4 = 40M


case 2: bit query

like options search。such as linux file attribute, R/W/X (R=100, W=010, X=001).

assume bit operate logic query_bit | field_bit !=0

search R OR W
{code}
{!cf name=bit}file_attr:(6)
{code}

I not yet upload bit query patch.

In my approach use long save 54 bit options。
                
> CollectorFilterQParserPlugin support Filter Collector at search with 
> PostFilter
> -------------------------------------------------------------------------------
>
>                 Key: SOLR-4701
>                 URL: https://issues.apache.org/jira/browse/SOLR-4701
>             Project: Solr
>          Issue Type: New Feature
>          Components: search
>    Affects Versions: 4.2
>            Reporter: Linbin Chen
>             Fix For: 4.3
>
>         Attachments: SOLR-4701.patch
>
>
> example:
>  * {code}fq={!cf name=in}status:(-1, 2){code}
>  * {code}fq={!cf name=in not=true}status:(3,4){code}
>  * {code}fq={!cf name=range}price:[100 TO 500]{code}
>  * {code}fq={!cf name=range}log(page_view):[50 TO 120]{code}
> in operate like sql in, faster then OR boolean query.
> most of the case, range faster then TrieField in lucene query.
> how to do use:
> solrconfig.xml add
> {code:xml}
> <queryParser name="cf" class="solr.CollectorFilterQParserPlugin"/>
> {code}
> cf not use query cache, use PostFilter fiter collector

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to