сортировка люцена - PullRequest
       31

сортировка люцена

1 голос
/ 14 сентября 2011

мы используем lucene в .net, и нам нужен способ реализовать поиск, который является «независимым от сортировки». Я не знаю, является ли это правильным термином, но что нам нужно, если у меня есть пользователь с именем [Žuf]Я хочу быть в состоянии найти его, указав [zuf], а также в другом направлении, если имя пользователя - [zuf] и я ввожу [Žuf]. Я все еще хотел его найти, всегда есть ручной способ зачистки всех символов ииндекс для этого, но я бы предпочел что-нибудь умнее

какие-либо идеи по этому поводу?

спасибо almir

Ответы [ 2 ]

2 голосов
/ 08 октября 2012

Lucene для Java содержит фильтр, который выполняет эту работу: ICUFoldingFilter (http://lucene.apache.org/core/3_6_1/api/all/org/apache/lucene/analysis/icu/ICUFoldingFilter.html), в пакете maven lucene-icu (по крайней мере, в версии 3.6.1). Я не знаю, существует ли такая библиотека для Lucene.net, но, поскольку он основан на ICU, вы должны иметь возможность переписать код в .NET.

Что такое ICUFoldingFilter:

TokenFilter, который применяет свертывание поисковых терминов кТекст Unicode, применяя свертки из символьных сверток UTR # 30.

Этот фильтр применяет следующие свертки из отчета к тексту Unicode:

- Accent removal
- Case folding
- Canonical duplicates folding
- Dashes folding
- Diacritic removal (including stroke, hook, descender)
- Greek letterforms folding
- Han Radical folding
- Hebrew Alternates folding
- Jamo folding
- Letterforms folding
- Math symbol folding
- Multigraph Expansions: All
- Native digit folding
- No-break folding
- Overline folding
- Positional forms folding
- Small forms folding
- Space folding
- Spacing Accents folding
- Subscript folding
- Superscript folding
- Suzhou Numeral folding
- Symbol folding
- Underline folding
- Vertical forms folding
- Width folding

Кроме того, по умолчанию игнорируемые элементы удаляются, а текстнормализовано к NFKC. Все сгибы, сгибы в кейсах и отображения нормализации применяются рекурсивно для обеспечения полностью сложенного и нормализованного результата.

1 голос
/ 14 сентября 2011

Взгляните на ASCIIFoldingFilter в сочетании с LowerCaseFilter он должен делать то, что вам нужно.

...