2015-11-19 2 views
2

У меня есть следующие значения данных для объекта Я ВОССТАНОВЛЕНИЕ с Исследовать (image link для более удобного просмотра):Umbraco Исследовать - запрашивая вопрос

__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:00 updateDate: 2015-11-18T17:03:05 writerName: Admin 

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

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

Я выполнил следующий запрос в Исследовать менеджер из 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 результаты, несмотря на то, что существуют доступные значения в индексах.

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

ответ

4

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

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

parentId является 1410 в вашем примере.

+0

* RawQuery * работает как очарование, спасибо! Я исследую реализацию с помощью [нашей ссылки.] (Https://our.umbraco.org/forum/developers/extending-umbraco/11659-Examine-quering-path) и сообщите, если это работает. Кроме того, мне пришлось возвращать * -1 * id в * Path *, так как * не может быть «экранирован» - из основной причины, по которой запрос поля не позволяет * в качестве первого символа. –

+1

Жаль, что я не смог бы в 10 раз повторить этот ответ! Спасибо :) Теперь я могу спать. – Samuel

 Смежные вопросы

  • Нет связанных вопросов^_^