django-sphinx

Phần mềm chụp màn hình:
django-sphinx
Các chi tiết về phần mềm:
Phiên bản: 2.2.4
Ngày tải lên: 11 May 15
Nhà phát triển: David Cramer
Giấy phép: Miễn phí
Phổ biến: 1

Rating: nan/5 (Total Votes: 0)

django-nhân sư là một lớp có chức năng giống như các Django ORM không ngoại trừ nó hoạt động trên cùng của Sphinx toàn văn công cụ tìm kiếm.
Xin lưu ý: Bạn sẽ cần phải tạo ra các chỉ số nhân sư riêng của bạn và cài đặt Sphinx trên máy chủ để sử dụng ứng dụng này.
Sẽ không còn được phát hành gói sẵn. Vui lòng sử dụng SVN để kiểm tra các phiên bản mới nhất của thân cây, như nó phải luôn luôn được ổn định và hiện tại.

Cài đặt:

Để cài đặt các phiên bản ổn định mới nhất:
sudo easy_install djangosphinx
Để cài đặt các phiên bản phát triển mới nhất (cập nhật khá thường xuyên):
svn checkout http://django-sphinx.googlecode.com/svn/trunk/ django-Sphinx
cd django-Sphinx
sudo python setup.py cài đặt
Lưu ý: Bạn sẽ cần phải cài đặt các gói sphinxapi.py vào Python đường dẫn của bạn hoặc sử dụng một trong các phiên bản bao gồm. Để sử dụng các phiên bản bao gồm, bạn phải xác định sau đây trong tập tin settings.py của bạn:
# Sphinx 0.9.9
SPHINX_API_VERSION = 0x116
# Sphinx 0.9.8
SPHINX_API_VERSION = 0x113
# Sphinx 0.9.7
SPHINX_API_VERSION = 0x107

Cách sử dụng:

Sau đây là một số ví dụ sử dụng:
class MyModel (models.Model):
& Nbsp; tìm kiếm = SphinxSearch () # tùy chọn: defaults để db_table
& Nbsp; # Nếu tên chỉ số của bạn không phù hợp MyModel._meta.db_table
& Nbsp; # Lưu ý: Bạn chỉ có thể tạo ra các cấu hình tự động từ các kịch bản ./manage.py
& Nbsp; # nếu tên chỉ số của bạn phù hợp.
& Nbsp; tìm kiếm = SphinxSearch ('index_name')
& Nbsp; # Hoặc có lẽ chúng ta muốn được nhiều hơn .. cụ thể
& Nbsp; searchdelta = SphinxSearch (
& Nbsp; index = 'delta_name index_name',
& Nbsp; trọng lượng = {
& Nbsp; 'name': 100,
& Nbsp; 'description': 10,
& Nbsp; 'tag': 80,
& Nbsp;}
& Nbsp;)
queryset = MyModel.search.query ('truy vấn')
results1 = queryset.order_by ('@ trọng lượng', '@ id', 'my_attribute')
results2 = queryset.filter (my_attribute = 5)
results3 = queryset.filter (my_other_attribute = [5, 3,4])
results4 = queryset.exclude (my_attribute 5 =) [00:10]
results5 = queryset.count ()
# Như của 2.0, bạn có thể truy cập một thuộc tính để có được các đối số trọng lượng và tương tự
cho kết quả trong results1:
& Nbsp; kết quả in, result._sphinx
# Bạn cũng có thể truy cập vào một bộ tương tự của dữ liệu meta trên queryset chính nó (khi nó đã được cắt lát hoặc thực hiện trong bất kỳ cách nào)
in results1._sphinx
Một số phương pháp bổ sung:
& Nbsp; * count ()
& Nbsp; * thêm () (thông qua để queryset)
& Nbsp; * tất cả () (không có gì)
& Nbsp; * select_related () (thông qua để queryset)
& Nbsp; * group_by (lĩnh vực, lĩnh vực, lĩnh vực)
& Nbsp; * set_options (index = '', trọng lượng = {}, trọng lượng = [])
Lớp django-Sphinx cũng hỗ trợ một số truy vấn cơ bản trên nhiều chỉ số. Để sử dụng này trước tiên bạn cần phải hiểu các quy tắc của một UNION. Chỉ số của bạn cần phải chứa chính xác cùng một lĩnh vực. Các trường này cũng phải bao gồm một lựa chọn content_type mà nên là content_type id kết hợp với bảng đó (model).
Sau đó bạn có thể làm một cái gì đó như thế này:
SphinxSearch ('index1 index2 index3'). Query ('hello')
Điều này sẽ trả về một danh sách của tất cả các trận đấu, sắp xếp theo trọng lượng, từ tất cả các chỉ số. Điều này thực hiện một truy vấn SQL cho mỗi chỉ số với các trận đấu trong nó, như ORM Django không hỗ trợ SQL UNION

Yêu cầu .

  • Django
  • Python

Phần mềm khác của nhà phát triển David Cramer

nose-json
nose-json

14 Apr 15

nose-bisect
nose-bisect

14 Apr 15

Sentry
Sentry

20 Feb 15

django-data-tools
django-data-tools

11 May 15

Ý kiến ​​để django-sphinx

Bình luận không
Nhập bình luận
Bật hình ảnh!