У меня есть иерархия страниц, таких какКак создать фасет «категория» на основе родительской страницы?
- Root
- Category 1
- Page 1
- Page 2
- Category 2
- Page 3
Я хочу использовать Найти, чтобы создать фильтр, основанный на именах категорий страниц. Вот что у меня до сих пор, немного я не могу понять, строка 4
var result = _searchClient.Search()
.For(query)
.Filter(x => x.Ancestors().Match(rootPageLink.ID.ToString()))
.FilterFacet("Categories", x => x.ParentLink) // This doesn't work
.HistogramFacetFor(x => x.Price, 100)
.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.GetContentResult();
Очевидно, что это не работает, потому что фильтр() ожидает фильтра в качестве второго аргумента, но вы можете увидеть, что я Я пытаюсь это сделать. Это примерно, аналогичный запрос SQL, как GROUP BY ParentLink
, а затем отображать информацию, как
Категория 1 (2 страницы)
Категории 2 (1 страницу)
Несколько вопросов. Могут ли страницы вашего ребенка, т. Е. Страницы 1, иметь свои собственные дочерние страницы? Являются ли страницы одного и того же типа? –
@ EricHerlitz На дочерних страницах сами дети. Страница 1,2 и 3 имеют одинаковый тип, а страницы категорий имеют одинаковый тип CategoryPage. –