2012-02-16 40 views
8

Trong tất cả các tham chiếu về toán tử bộ lọc tìm kiếm LDAP, tôi tìm thấy <= cho "nhỏ hơn hoặc bằng" và >= cho "lớn hơn hoặc bằng".Ít hơn toán tử trong bộ lọc tìm kiếm LDAP?

Có thực sự không có nhà điều hành "nghiêm ngặt ít hơn" không? Tôi có phải viết attribute < threshold như sau không? (Ngưỡng là giá trị cố định.)

(&(attribute <= threshold)(!(attribute = threshold))) 

Trong trường hợp hiện tại, giá trị thuộc tính là số nguyên đại diện cho ngày, ví dụ: 20120217161853 cho 2012-02-17 16:18:53.

Trả lời

12

Một cách giải quyết đơn giản khác là đảo ngược điều kiện. Nếu bạn cần

(attribute < threshold) 

Sau đó, điều này cũng có thể được viết như

!(attribute >= threshold) 
2

Không chắc chắn thực sự hiểu. Nếu bạn muốn một số thứ như X<100 tại sao bạn không mã X<=99.

+1

Điều đó sẽ làm việc. Tôi đã không nghĩ về nó bởi vì đầu vào xảy ra là một chuỗi ngày-thời gian, nhưng một khi nó được lưu trữ trong LDAP nó chỉ là số nguyên. – Joni

+0

Bạn đang sử dụng Danh bạ nào? – JPBlanc

+0

Thư mục là khách hàng của chúng tôi và tôi nghĩ đó là Máy chủ Thư mục Mặt trời, nhưng chúng tôi chưa có quyền truy cập vào nó ... Hiện tại, chúng tôi đã chạy các thử nghiệm của mình chống lại «Net :: LDAP :: Server :: Test', đó là Perl mô-đun thực hiện vừa đủ của một máy chủ thư mục để thử nghiệm. – Joni

3

Tham khảo RFC4511 để biết định nghĩa về các loại bộ lọc tìm kiếm. Các loại bộ lọc là:

  • equalityMatch AttributeValueAssertion,
  • chuỗi con SubstringFilter
  • greaterOrEqual AttributeValueAssertion
  • lessOrEqual AttributeValueAssertion
  • hiện AttributeDescription
  • approxMatch AttributeValueAssertion
  • extensibleMatch MatchingRuleAssertion

Không chỉ là không có '<' lọc, giá trị tương đối trong >=<= được định nghĩa bằng cách đặt hàng quy định, và do đó làm một sự so sánh giá trị tương đối có thể không được gì được mong đợi trừ khi treshold1.3.6.1.4.1.1466.115.121.1.27 cú pháp và có integerOrderingMatch quy tắc đặt hàng.

+0

Cảm ơn bạn đã tham khảo. Trên thực tế "ngưỡng" là giá trị cố định chứ không phải thuộc tính khác, xin lỗi vì không làm rõ. Quy tắc đặt hàng có phải là 'integerOrderingMatch' không? – Joni

+0

Không, chỉ để so sánh số nguyên. Các quy tắc đặt hàng khác cho các thuộc tính có thể là từ điển. Các ứng dụng phải tham khảo lược đồ để xác định các quy tắc đặt hàng, các quy tắc phù hợp và cú pháp thuộc tính. Các định danh đối tượng được sử dụng trong lược đồ được định nghĩa tại IANA. –

Các vấn đề liên quan