Несколько фильтров в Lucene.net - PullRequest
1 голос
/ 04 июля 2011

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

Например, у меня есть запись с анализируемым полем заголовок и без анализируемых полей id1 , id2 , id3 , release_date .Я хочу найти все записи, используя специальные фильтры для 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 не предоставляет массив фильтров.

Пожалуйста, помогите мне:) Спасибо! :) 1022 *

1 Ответ

3 голосов
/ 04 июля 2011

Вы можете использовать что-то вроде ChainedFilter

см .: http://lucene.apache.org/java/2_9_0/api/contrib-misc/org/apache/lucene/misc/ChainedFilter.html

В дистрибутиве .net lucene также есть ChainedFilter.

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

Другой вариант - реализовать его в качестве порта Java-приложения, это не так уж много кода.

...