Umbraco Examine - вопрос к вопросу

У меня есть следующее значение данных для объекта, который я извлекаю с помощью Examine ( ссылка на изображение для более удобного просмотра):

__Icon: icon-shopping-basket-alt-2 color-red __IndexType: content __NodeId: 1413 __NodeTypeAlias: sale __Path: -1,1098,1410,1413 id: 1413 nodeName: Sale test 1 (active) nodeTypeAlias: Sale path: 1098 1410 1413 saleEndDate: 20151231160336000 saleStartDate: 20151026160321000 updateDate: 2015-11-18T17:03:05 writerName: Admin

Атрибут path является удаленной версией __Path. Это было сделано из-за проблем с запуском запроса с -1 и использованием запятых в качестве значений запроса.

Проблема, с которой я сталкиваюсь, связана с необходимостью запроса части пути, например, получения объектов, которые содержат желаемый идентификатор (в конкретном случае только 1410).

Я выполнил следующий запрос в Examine Manager из Umbraco: +nodeTypeAlias: sale +path:1468,

Пример кода на C# выглядит следующим образом:

var queryAllSalesInDepartment = searchCriteria
                                        .Field(Constant.Examine.AttributeFields.NodeTypeAlias, Constant.DocumentTypeAlias.Sale)
                                        .And().Field(Constant.Examine.AttributeFields.Path, Umbraco.AssignedContentItem.Parent.Id.ToString())
                                        .Compile();

Запрос дает 0 результатов, несмотря на то, что в индексах есть доступные значения.

Я делаю запрос неправильно или мне нужно пересмотреть форматирование значения пути по-другому?

1 ответ

Решение

Да, запрос должен быть "нечетким":-s Вы можете пойти (по моему мнению) трудно читаемым способом, как это: https://our.umbraco.org/forum/developers/extending-umbraco/11659-Examine-quering-path или необработанный запрос следующим образом:

searchCriteria.RawQuery(@"+path:\-1*" + parentId + "*");

parentId был 1410 в вашем примере.

Другие вопросы по тегам