Похоже, что в вашей модели данных есть опечатка, она должна быть @unique
вместо @ unique
.
Я не думаю, что необходимо поддержать "все" поле.
Удачи
Необходимо получить Lucene в Действии. Хотя об исходном (который является Java) реализация Lucene, он содержит всю информацию, Вам нужно: о повышениях, маркерах, qwery синтаксические анализаторы, и т.д.
Мы делаем что-то подобное, прием должен указать поля в Вашей строке запроса:
(+Tier1:ribbon^1)^4 OR (+Tier2:ribbon^1)^4 OR (+Tier3:ribbon^1) OR (+Tier4:q*ribbon*^1)^12
В вышеупомянутом примере пользователь искал "ленту" в нашем приложении. У нас есть различные сегменты данных в различных полях, и заключительное поле "Tier4" содержит все предыдущие сроки, связанные вместе. Мы предварительно ожидаем поле с "q", таким образом, мы можем сделать ведущие подстановочные знаки, также:
(+Tier4:q*ribbon*^1)^12
Наконец, мы используем повышения с каре (^). Это заканчивает тем, что взвесило вещи по-другому. Это требовало времени для разбираний в повышениях, и я все еще не на 100% доволен ими, но они действительно оказывают большое влияние.