2016-10-07 2 views
0

Я хочу запросить пустое поле, которое не пусто, используя API-интерфейс Sensenet Odata Rest API. В их документации упоминается функция фильтра, называемая длиной. Я попытался запросить поле с помощью операции длины, но с ошибкой ошибся.Фильтр длины сенсенса Не работает

Это фильтр я использовал

$filter=length(Name) eq 2 

Sense/Чистый 6.5.4.9496

Исключение

"code": "NotSpecified", 
"exceptiontype": "SnNotSupportedException", 
"message": { 
"lang": "en-us", 
"value": "Unknown method: length" 
}, 

вики Ссылка http://wiki.sensenet.com/OData_REST_API

ответ

2

длина операция была включена в списке suppor неверно, мы приносим извинения за это. SenseNet компилирует эти фильтры для запросов Lucene, и в Lucene невозможно запросить такой запрос, который выполняет операцию на поле.

(остальные методы, как substringof или StartsWith может быть скомпилированы для выражения подстановочного легко, так что должно работать)

К сожалению, «пустое» выражение также не поддерживается Lucene, из-за их документ/структура сроков. Таким образом, следующее выражение не работает либо:

Description eq '' 

Редактировать: как обходной путь, разработчики могут создавать пользовательские поле индекса обработчика.

Для каждого поля вы хотите проверить на пустоту (например Описания), вы можете создать техническое скрытое поле Его (IsDescriptionEmpty) в определении типа содержимого. Единственное, что вам нужно создать и определить, это настраиваемый класс обработчика индекса полей. В вашем случае он наследует от встроенного обработчик индекса поля bool, и вы можете вернуть значение логического индекса на основании того, пустое или нет целевое поле (в данном случае описание).

После этого вы сможете определить поисковые exressions как следующее:

+Type:File +IsDescriptionEmpty:true 

Пожалуйста, проверьте статью вики ниже и исходный код примеров обработчика индекса.

How to create a field indexhandler

+0

Есть ли другой способ знать, что поле пусто или не пусто в sensenet? –

+0

Привет, я добавил обходной путь для разработчиков в ответ выше: создание настраиваемого обработчика индекса полей. –

+0

Привет, Миклос Спасибо за обновление. –