Когда мне нужно выполнять запросы в Solr, я использовал SearchQuery () и внутри них устанавливал filterQueries. Для моего поиска можно было установить фильтры.
final String FIELD_NAME = "name_text_mv"; // name of my field in Solr
SearchQuery searchQuery = init(facetSearchConfig); // init configs
searchQuery.setFreeTextQueryBuilder(text); // set the text of my search
setFiltersFreeTextSearch(searchQuery.getFilterQueries(), text, FIELD_NAME);
Функция создания магов c (добавить в мой поиск мои фильтры):
private void setFiltersFreeTextSearch(List<QueryField> filters, String text, String... fields) {
text = StringUtils.stripAccents(text).toLowerCase();
String textCapitalized = capitalizeEachWolrd(text.toLowerCase());
for (String field : fields) {
QueryField queryField = new QueryField(field, SearchQuery.Operator.OR, SearchQuery.QueryOperator.CONTAINS,
text, text.toUpperCase(), textCapitalized);
filters.add(queryField);
}
}
Как вы можете видеть, в этом QueryField вы можете добавить «где» вы ищете в Solr. Я использовал CONTAINS, и это мои «LIKE» и «OR» для поиска любого элемента. это было моим решением для моего случая, в любом случае, это просто идея. :)
(Для проекта используется Java)