Ravendb. Фильтровать документы, рассмотренные для предложений

#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. Да, это то, что я ожидал. Но тогда эта функция действительно бесполезна:(