Встречается на собеседованиях • сегодня
Какой бы использовал индекс для полнотекстового поиска
Для полнотекстового поиска в Java-приложениях чаще всего используют Lucene или его обертку Elasticsearch/Solr.
Пример с Lucene:
java
// Создание индекса
Directory index = FSDirectory.open(Paths.get("indexdir"));
Analyzer analyzer = new StandardAnalyzer();
IndexWriterConfig config = new IndexWriterConfig(analyzer);
IndexWriter writer = new IndexWriter(index, config);
// Добавление документа
Document doc = new Document();
doc.add(new TextField("content", "текст для поиска", Field.Store.YES));
writer.addDocument(doc);
writer.close();
// Поиск
IndexReader reader = DirectoryReader.open(index);
IndexSearcher searcher = new IndexSearcher(reader);
QueryParser parser = new QueryParser("content", analyzer);
Query query = parser.parse("поиска");
TopDocs results = searcher.search(query, 10);
text
**Почему:**
- Поддерживает морфологию, стоп-слова, синонимы.
- Гибкость в настройке анализаторов (N-grams, fuzzy search).
- Высокая производительность даже на больших объемах данных.
Для простых случаев можно использовать **PostgreSQL с pg_trgm** или **MySQL FULLTEXT**, но Lucene/Elasticsearch дают больше возможностей.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы