You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Adriano Crestani (JIRA)" <ji...@apache.org> on 2009/10/01 19:55:23 UTC

[jira] Updated: (LUCENE-1937) Add more methods to manipulate QueryNodeProcessorPipeline elements

     [ https://issues.apache.org/jira/browse/LUCENE-1937?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adriano Crestani updated LUCENE-1937:
-------------------------------------

    Attachment: LUCENE-1937.patch

The patch adds five methods:

QueryNodeProcessor getProcessorAt(int index)
removeProcessorAt(int index)
addProcessor(int index, QueryNodeProcessor processor)
setProcessor(int index, QueryNodeProcessor processor)
int getSize()

I realized while coding that manipulation methods based on processor instead of index position can be tricky, because the pipeline could have the same instances in multiple positions, so they are based on index position.

> Add more methods to manipulate QueryNodeProcessorPipeline elements
> ------------------------------------------------------------------
>
>                 Key: LUCENE-1937
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1937
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: contrib/*
>    Affects Versions: 3.1
>            Reporter: Adriano Crestani
>            Assignee: Adriano Crestani
>            Priority: Minor
>             Fix For: 2.9
>
>         Attachments: LUCENE-1937.patch
>
>
> QueryNodeProcessorPipeline allows the user to define a list of processors to process a query tree. However, it's not very flexible when the user wants to extend/modify an already created pipeline, because it only provides an add method, which only allows the user to append a new processor to the pipeline.
> So, I propose to add new methods to manipulate the processor in a pipeline. I think the methods should not consider an index position when modifying the pipeline, hence the index position in a pipeline does not mean anything, a processor has a meaning when it's after or before another processor. Therefore, I suggest the methods should always consider another processor when inserting/modifying the pipeline. For example, insertAfter(processor, newProcessor), which will insert the "newProcessor" after the "processor".

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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