0
Я работаю над задачей, в которой мне нужно заменить Solr Elasticsearch на Java-базу. Один из методов позволяет текстовые запросы, которые будут представлены в Solr:Запуск текстового запроса с использованием Elasticsearch Java API
public List<String> executeQueryForCollection(SolrQuery query, String collectionName)
throws IOException, SolrServerException {
QueryResponse response = this.client.query(collectionName, query);
return response.getResults();
}
Где query
это любой допустимый запрос Solr (name_s:'Joe Bloggs' AND age_i:15
). Что эквивалентно Elasticearch (версия 2.4.4)? Elasticsearch API выглядит гораздо более ограничительным.
Является 'client.prepareSearch (индекс) .setQuery (QS)' 'предпочтительнее client.prepareSearch (индекс) .setQuery ("name_s: 'Джо Bloggs' И age_i: 15")' или же они оба делать то же самое? –
См. Мой обновленный ответ: 'setQuery()' не принимает строки, только объекты-объекты запроса – Val
ОК спасибо. 'setQuery()' принимает Strings в 2.4.4, но, возможно, QueryBuilder более безопасен в долгосрочной перспективе. –