You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Greg Visotski (JIRA)" <ji...@apache.org> on 2014/02/18 13:52:21 UTC

[jira] [Commented] (LUCENE-5000) Query serialization using ObjectInput/OutputStream

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

Greg Visotski commented on LUCENE-5000:
---------------------------------------

Hi Karl, I picked up your patch and have been testing it with Lucene 4.3.1.  It works perfectly, and I'd love to see it committed.  Thank you!

> Query serialization using ObjectInput/OutputStream
> --------------------------------------------------
>
>                 Key: LUCENE-5000
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5000
>             Project: Lucene - Core
>          Issue Type: New Feature
>          Components: core/search
>    Affects Versions: 4.3
>            Reporter: Karl Wettin
>            Priority: Trivial
>         Attachments: LuceneQuerySerializer.java, TestLuceneQuerySerializer.java
>
>
> Reads and writes queries on ObjectInput/OutputStream.
> No support for ConstantScoreQuery (no serialization for Filter) nor PayloadNearQuery and PayloadTermQuery (no serialization for PayloadFunction).
> I might have missed to implement support for some core Queries. Currently supported are: TermQuery, BooleanQuery, WildcardQuery, PhraseQuery, MultiPhraseQuery, FuzzyQuery, RegexpQuery, TermRangeQuery, NumericRangeQuery, DisjunctionMaxQuery, MatchAllDocsQuery, SpanTermQuery, SpanMultiTermQueryWrapper, SpanNearQuery, SpanNotQuery, SpanOrQuery, FieldMaskingSpanQuery, SpanFirstQuery, SpanPositionRangeQuery, SpanPayloadCheckQuery and SpanNearPayloadCheckQuery.
> Users are allowed to implement and register strategies for their own queries.
> This will not allow you to serialize any object graph with aggregated Query instances e.g. Map<String, Query>, that would require a new implementation of ObjectOutputStream (one could base that on the GPL2 code from OpenJDK) or instrument the existing implementations to handle Query in private writeObjectA and similar methods.
> There's a bit of reflection glue in this code in order to read private fields in query implementation. Not too happy about that, but not much to do unless one is to expose a bunch of new getters in all those classes.
> The class is places in o.a.l.search in order to access package visible fields without getters. If moving to another package this would have to be handled using reflection as with above mentioned private fields.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

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