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

Robert Muir commented on LUCENE-4069:
-------------------------------------

{quote}
I was trying to limit the extensions apps would have to write to use this 
service (1 custom postings format subclass, 1 custom Codec subclass and 1 
custom SPI config file)
{quote}

As far as Codec goes, we don't need to provide one for specialized per-field 
PostingsFormats.

Users can just use an anonymous Lucene40Codec, which already has a hook for 
doing stuff like this (a protected method you can override to changeup postings 
format per-field).

example that sets SimpleText on just the "id" field:
{code}
    indexWriterConfig.setCodec(new Lucene40Codec() {
      @Override
      public PostingsFormat getPostingsFormatForField(String field) {
        if ("id".equals(field)) {
          return new SimpleTextPostingsFormat();
        } else {
          return super.getPostingsFormatForField(field);
        }
      } 
    });
{code}

this is only necessary to set on the indexwriterconfig for writing: 
PerFieldPostingsFormat records for 
that id field that it was encoded with "SimpleText"

when the segment is opened, assuming "SimpleText" is in the classpath and 
registered, it will just work.

from the solr side, they dont need to set any codec either, as its schema 
already uses this hook, so there its just:

{code}
<fieldType name="string_simpletext" class="solr.StrField" 
postingsFormat="SimpleText"/>
{code}


                
> Segment-level Bloom filters for a 2 x speed up on rare term searches
> --------------------------------------------------------------------
>
>                 Key: LUCENE-4069
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4069
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: core/index
>    Affects Versions: 3.6, 4.0
>            Reporter: Mark Harwood
>            Priority: Minor
>             Fix For: 4.0, 3.6.1
>
>         Attachments: BloomFilterCodec40.patch, 
> MHBloomFilterOn3.6Branch.patch, PrimaryKey40PerformanceTestSrc.zip
>
>
> An addition to each segment which stores a Bloom filter for selected fields 
> in order to give fast-fail to term searches, helping avoid wasted disk access.
> Best suited for low-frequency fields e.g. primary keys on big indexes with 
> many segments but also speeds up general searching in my tests.
> Overview slideshow here: 
> http://www.slideshare.net/MarkHarwood/lucene-bloomfilteredsegments
> Benchmarks based on Wikipedia content here: http://goo.gl/X7QqU
> Patch based on 3.6 codebase attached.
> There are no 3.6 API changes currently - to play just add a field with "_blm" 
> on the end of the name to invoke special indexing/querying capability. 
> Clearly a new Field or schema declaration(!) would need adding to APIs to 
> configure the service properly.
> Also, a patch for Lucene4.0 codebase introducing a new PostingsFormat

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
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