#ravendb #search-suggestion
#ravendb #поиск-предложение
Вопрос:
Я хотел бы использовать запрос предложения и фильтровать документы, которые будут рассматриваться для предложений по нескольким полям. Возможно ли это вообще? Я не смог найти ничего об этом в документации ravendb ссылка на документ
Я попытался добавить свои условия фильтрации в запрашиваемый, но безуспешно
using (IDocumentSession documentSession = _storeProvider.GetStore().OpenSession())
{
var queryable = documentSession.Query<SearchableProduct>("SearchableProducts");
var result = queryable
//I would like to filter by this field!
.Where(m => m.BrandNo == query.BrandNumber)
.Suggest(new SuggestionQuery
{
Term = query.SearchTerm,
Accuracy = 0.4f,
Field = nameof(SearchableProduct.ProductName),
MaxSuggestions = 10,
Distance = (StringDistanceTypes)2,
Popularity = true
});
return result.Suggestions;
}
Версия Ravendb: 3.0
Ответ №1:
Вы не можете использовать дополнительные фильтры для запроса предложения. Способ, которым работает предложение, оценивает поисковый запрос по сохраненным терминам в индексе, без учета других полей, которые могут там применяться.
Однако вы можете использовать фасеты для фильтрации на основе дополнительных фильтров и использовать выходные данные предложения в качестве входных данных для фасетов.
Комментарии:
1. Да, это то, что я ожидал. Но тогда эта функция действительно бесполезна:(