Множество филтри в Lucene.net

Как да комбинирате няколко филтъра в едно търсене?

Например имам запис с анализируемо поле title и неанализируеми полета id1, id2, id3, дата_на_пускане. Искам да намеря всички записи с помощта на специфични филтри за id1, id2, id3 и release_date; И така, имам:

RangeFilter refReleaseDateFilter = new RangeFilter("release_date",
            refFromDateTimeTerm.Text(), refToDateTimeTerm.Text(), true, true);

RangeFilter refId1Filter = new RangeFilter("id1",
            refFromId1Term.Text(), refToId1Term.Text(), true, true);

RangeFilter refId2Filter = new RangeFilter("id2",
            refFromId2Term.Text(), refToId2Term.Text(), true, true);

RangeFilter refId3Filter = new RangeFilter("id3",
            refFromId3Term.Text(), refToId3Term.Text(), true, true);

Но методът Търсене на клас IndexSearcher не предоставя масив от филтри.

Моля, помогнете ми :) Благодаря ви! :)


person Edward83    schedule 04.07.2011    source източник


Отговори (1)


Можете да използвате нещо като ChainedFilter

виж.: http://lucene.apache.org/java/2_9_0/api/contrib-misc/org/apache/lucene/misc/ChainedFilter.html

има и ChainedFilter в .net разпространението на lucene.

http://www.koders.com/csharp/fidB8682543372DDC9772496D453F39957A94E58466.aspx?s=system#L3

Друг вариант би бил да го внедрите като порт на java приложението, не е толкова много код.

person fyr    schedule 04.07.2011
comment
fyr благодаря ви, но както разбрах ChainedFilter не е внедрен в .Net порт на Lucene. - person Edward83; 04.07.2011
comment
Редактирах това с препратка към това. Има и няколко публикации в пощенския списък относно това. - person fyr; 04.07.2011