2012-05-30 41 views

Trả lời

1

Cho dù có một giải pháp thay thế cho việc có một bộ lọc bất bình đẳng duy nhất cho mỗi truy vấn hay không phụ thuộc vào loại tập dữ liệu bạn đang truy vấn. Ví dụ: nếu bạn muốn truy vấn dữ liệu vị trí bằng cách sử dụng địa chỉ kinh độ và vĩ độ, bạn thường cần truy vấn một dải giá trị trên hai thuộc tính (lat và long). Tuy nhiên, với thuật toán geohash, bạn có thể thực hiện truy vấn tương đương chỉ bằng một thuộc tính duy nhất.

3

Thực tế GAE hỗ trợ nhiều bộ lọc bất bình đẳng miễn là chúng là on the same property.

Cách giải quyết cho giới hạn này là cụ thể cho dữ liệu, ví dụ: nó phụ thuộc vào cách dữ liệu của bạn được cấu trúc và cách bạn muốn truy vấn dữ liệu đó. Ví dụ, để tìm kiếm địa lý, như @ Holanet của Holon đã đề cập, có nhiều thuật toán băm địa lý khác nhau. Về cơ bản tất cả các thuật toán như vậy liên quan đến việc kết hợp nhiều thuộc tính thành một và đồng thời định lượng tài sản (tạo ra các giá trị rời rạc). Ví dụ: băm địa lý liên quan đến việc chia bản đồ thế giới thành các khu vực có kích thước cố định nhỏ (= kết hợp vĩ độ/kinh độ và lượng tử hóa) để có thể tìm kiếm thông qua toán tử bình đẳng.

0

Khi tôi khắc phục sự cố này (ví dụ: phạm vi tìm kiếm từ - đến), tôi sử dụng truy vấn với bộ lọc bất bình đẳng đơn lẻ. Tùy thuộc vào thứ tự sắp xếp (asc hoặc desc) tôi chọn giới hạn trên hoặc dưới. Sau đó tôi lọc kết quả theo chương trình với giới hạn dưới hoặc trên không nằm trong bộ lọc truy vấn.

+0

là cần thiết? như đã đề cập bởi Peter, nhiều bộ lọc bất bình đẳng được hỗ trợ miễn là chúng nằm trên cùng một thuộc tính. –

+0

Tôi cố gắng sử dụng một (phạm vi từ - đến) cho cùng một trường ngày - nó không được hỗ trợ cho tôi. Tôi sử dụng nó với JDO – alexey28

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