Встречается на собеседованиях • сегодня

Какой бы использовал индекс для полнотекстового поиска

Для полнотекстового поиска в 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 дают больше возможностей.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы