В базе данных у меня есть 4 строки: user, user1, user2, user4. Когда я ищу со строкой - это пользователь, я получу только значение - это пользователь, как я могу получить всю ценность в базе данных?Поиск в спящем режиме: как я могу найти символ сдерживания
ответ
Это зависит от того, что вы хотите сделать.
Если разница между 2 различными значениями только число после названия («user1» и «user2»), вы можете использовать LowerCaseTokenizerFactory которые капли не являющихся буквами, так что «user1», «user2» и «user4» будет проиндексирован «пользователь».
Вы можете использовать EdgeNGramFilterFactory, который создает n-граммы из поля для индексации, поэтому «user4» будет проиндексирован: «u», «us», «use», «user», «user4». В этом случае вы найдете «user», «user1», «user2» и «user4», когда ваше ключевое слово: «u», «us», «use» или «user».
Как упоминалось в @srs, вы можете использовать подстановочный знак.
Если вы хотите, чтобы решить эту проблему в время запроса вы можете создать объект запроса с «шаблоном» и поиском «пользователя *», чтобы получить все результаты. Следуйте примеру:
Query q = yourQueryBuilderInstance.keyword().wildcard().onField("yourField")
.matching("user*").createQuery();
- 1. Поиск наследования в спящем режиме
- 2. Поиск в спящем режиме: точное совпадение фразы
- 3. Поиск по нескольким индексам в Lucene (поиск в спящем режиме)
- 4. Нечувствительный к регистру поиск в спящем режиме
- 5. Многопользовательский поиск в спящем режиме с критериями
- 6. Индексирование данных в спящем режиме Поиск
- 7. Найти в спящем режиме пула соединений используется
- 8. Как я могу исправить JndiException в спящем режиме?
- 9. Как я могу настроить StatementInspector в спящем режиме?
- 10. uniqueResult устарел в спящем режиме 5.2.2? как я могу сделать?
- 11. Как я могу управлять сеансами и транзакциями в спящем режиме?
- 12. Как я могу назвать эту функцию в спящем режиме?
- 13. Как я могу сделать объекты локально пересмотренными в спящем режиме?
- 14. Наследование в спящем режиме
- 15. Как вести поиск в спящем режиме в индексе Lucene?
- 16. Могу ли я обходить промежуточный объект в спящем режиме
- 17. SessionFactory в спящем режиме
- 18. Не может найти конфигурацию() в спящем режиме
- 19. Как я могу выполнить поиск по сайту LIKE с помощью поиска в спящем режиме?
- 20. Отключить индексирование в спящем режиме
- 21. Я не могу сопоставлять эти классы в спящем режиме
- 22. Выберите как в спящем режиме
- 23. MappingNotFoundException в спящем режиме
- 24. count (*) в спящем режиме?
- 25. Как работает setParameterList в спящем режиме?
- 26. ColumnTransformer в спящем режиме
- 27. Группировка в спящем режиме
- 28. автообъединения в спящем режиме
- 29. ClassCastException в спящем режиме
- 30. clientidentifier в спящем режиме
большое спасибо. Но как у вас лучшая производительность? Используя EdgeNGramFilterFactory или используя подстановочный запрос: -/ –
Добро пожаловать :) Я не сравнивал их работу. EdgeNGramFilterFactory занимает больше времени при индексировании и требует больше памяти. Хотя подстановочный шаблон занимает больше времени при извлечении данных и не применяется анализатор на соответствующих условиях. Если вы решите использовать подстановочный знак, не ставьте «*» или «?» В начале ключевого слова как («* user»), если у вас большой объем данных. –