Я хочу включить поиск группы полей для одной из моих сущностей. Поэтому я добавил hibernate-поиск в свой весенний загрузочный проект. Когда я загружаю данные в базу данных, я вижу, что Elasticsearch содержит эти данные, как и ожидалось, в индексе, работающем с
curl localhost:9200/myindex/_search?pretty
. Я могу выполнять запросы типа
curl localhost:9200/myindex/_search?pretty&q=name:test
и получать ожидаемые результаты. .
Я бы хотел, чтобы пользователи моего API могли выполнять произвольные запросы, такие как «name: test», к индексу, чтобы
curl "localhost:8086/myentity/search/querySearch?query=name:test"
возвращал те же результаты, что и раньше. в прямом запросе.
Вот что я пытаюсь, но что бы я ни делал, я получаю 0 результатов:
public List<MyEntity> querySearch(String queryString) {
QueryParser queryParser = new MultiFieldQueryParser(ALL_FIELDS, new SimpleAnalyzer());
queryParser.setDefaultOperator(QueryParser.AND_OPERATOR);
org.apache.lucene.search.Query query = queryParser.parse(QueryParser.escape(queryString));
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(this.entityManager);
javax.persistence.Query persistenceQuery =
fullTextEntityManager.createFullTextQuery(query, MyEntity.class);
return persistenceQuery.getResultList();
}