Как сделать частичные соответствия начала в Solr?

Я пытаюсь искать частичные соответствия начала в большом списке lastnames. Таким образом, Wein* должен найти Weinberg, Weinkamm и т.д.

Я мог сделать это путем создания специального поля и добавления

<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" preserveOriginal="1"/>

к его спецификации типа в schema.xml. Когда я добавляю строку выше только к индексации анализатор и оставляю это пустым для запроса анализатор, я могу затем искать просто поиском special_field:Wein и получить ожидаемые результаты.

Теперь я вижу, что solr также имеет *-syntax. Каково соединение между EdgeNGramFilterFactory и *-syntax?

Я делаю вещи правильно или являюсь там лучшим, более регулярным путем?

Спасибо!

5
задан CruftyCraft 18 August 2010 в 08:44
поделиться