django_sphinx_db

ภาพหน้าจอของซอฟแวร์:
django_sphinx_db
รายละเอียดซอฟแวร์:
รุ่น: 0.1-3
วันที่อัพโหลด: 20 Feb 15
ผู้พัฒนา: Ben Timby
การอนุญาต: ฟรี
ความนิยม: 10

Rating: 3.0/5 (Total Votes: 2)

django_sphinx_db เป็นแบ็กเอนด์ฐานข้อมูล Django ง่ายๆที่ช่วยให้การมีปฏิสัมพันธ์กับสฟิงซ์ผ่าน SphinxQL มันเป็นพื้นเริ่มต้นแบ็กเอนด์ MySQL Django มีการเปลี่ยนแปลงบางอย่างสำหรับสฟิงซ์
SphinxQL เป็นโหมดโคลน MySQL ที่สฟิงซ์ searchd สนับสนุน จะช่วยให้คุณค้นหาดัชนีผ่านทางไวยากรณ์ SQL เก่าปกติ ถ้าคุณกำลังใช้ RT (เรียลไทม์) ดัชนีคุณยังสามารถเพิ่มและปรับปรุงเอกสารในดัชนี
แบ็กเอนด์นี้มีความหมายที่จะ configued เป็นฐานข้อมูลใน settings.py Django
แพคเกจนี้จะให้ระดับผู้จัดการ, ชุด SQLCompiler และรหัสการสนับสนุนที่จะทำให้เป็นไปได้นี้
การใช้งาน
ครั้งแรกของทั้งหมดคุณต้องกำหนดเชื่อมต่อฐานข้อมูลในการกำหนดค่า Django นอกจากนี้คุณยังต้องติดตั้งฐานข้อมูลเราเตอร์สฟิงซ์และเพิ่มเข้าไปในรายการ django_sphinx_db INSTALLED_APPS ของคุณ
# ติดตั้ง django_sphinx_db:
INSTALLED_APPS + = ('django_sphinx_db',)
# นี่คือชื่อของเซิร์ฟเวอร์สฟิงซ์ในฐานข้อมูล:
SPHINX_DATABASE_NAME = 'สฟิงซ์'
# กำหนดเชื่อมต่อกับสฟิงซ์
ฐานข้อมูล = {
& nbsp; 'เริ่มต้น': {
& nbsp; # การเชื่อมต่อฐานข้อมูลเริ่มต้นของคุณที่นี่ ...
& nbsp;}
& nbsp; SPHINX_DATABASE_NAME: {
& nbsp; 'เครื่องยนต์': 'django_sphinx_db.backend.sphinx',
& nbsp; # ชื่อฐานข้อมูลไม่สำคัญ
& nbsp; 'ชื่อ': ''
& nbsp; # มีชื่อผู้ใช้หรือรหัสผ่าน
& nbsp; 'ผู้ใช้': ''
& nbsp; 'รหัสผ่าน': ''
& nbsp; # อย่าใช้ localhost นี้จะส่งผลในการใช้ UDS แทน TCP ...
& nbsp; โฮสต์ ':' 127.0.0.1 ',
& nbsp; 'PORT': '9306',
& nbsp;}
}
# ... และเส้นทางตาม ...
DATABASE_ROUTERS = (
& nbsp; 'django_sphinx_db.routers.SphinxRouter',
) `` `
จากนั้นกำหนดรูปแบบที่เกิดขึ้นจาก SphinxModel ตามปกติรูปแบบจะถูกวางไว้ใน models.py
จาก django_sphinx_db.backend.models นำเข้า SphinxModel, SphinxField
ชั้น MyIndex (SphinxModel):
& nbsp; ชั้น Meta:
& nbsp; # นี่ต่อไปอีกนิดเป็นสิ่งสำคัญที่คุณไม่ต้องการ Django ในการจัดการ
& nbsp; # ตารางสำหรับรุ่นนี้
& nbsp; การจัดการ = เท็จ
& nbsp; name = SphinxField ()
& nbsp; เนื้อหา = SphinxField ()
& nbsp; วัน = models.DateTimeField ()
& nbsp; size = models.IntegerField ()
การกำหนดค่าสฟิงซ์
ตอนนี้คุณต้องสร้างไฟล์การกำหนดค่าสำหรับดัชนีของคุณ คำสั่งการจัดการที่มีให้การแปลงรูปแบบความคมชัดในการกำหนดค่าที่เหมาะสม
& nbsp; หลาม manage.py syncsphinx >> /etc/sphinx.conf
& nbsp; vi /etc/sphinx.conf
ไฟล์ config สร้างควรจะเริ่มต้นที่ดี แต่คุณจะถูกกระตุ้นให้ทบทวนการกำหนดค่ากับ [สฟิงซ์การตั้งค่าการอ้างอิง] (http://sphinxsearch.com/docs/2.0.2/confgroup-index.html)
การใช้ Django ออมกับสฟิงซ์
ตอนนี้คุณสามารถค้นหาและจัดการดัชนีเรียลไทม์ของคุณโดยใช้ Django ออม คุณสามารถแทรกและการปรับปรุงเอกสารในดัชนีการใช้วิธีการดังต่อไปนี้ ตัวอย่างด้านล่างใช้ [ห้องสมุด Fulltext] (https://github.com/btimby/fulltext) สำหรับการอ่านเนื้อหาของแฟ้มเป็นข้อความธรรมดา
นำเข้า OS เวลา Fulltext
# เพิ่มเอกสารดัชนี
เส้นทาง = 'resume.doc'
เซนต์ = os.stat (เส้นทาง)
MyIndex.objects.create (
& nbsp; ชื่อเส้นทาง =
& nbsp; เนื้อหา = fulltext.get (เส้นทาง, ''),
& nbsp; size = st.st_size,
& nbsp; วัน = time.strftime ('% Y-% m-% d% H:% M:% S' time.localtime (st.st_mtime))
)
# การปรับปรุงเอกสารในดัชนี
เอกสาร = MyIndex.objects.get (PK = 1)
doc.content = fulltext.get (เส้นทาง, '')
doc.size = st.st_size
doc.date = time.strftime ('% Y-% m-% d% H:% M:% S' time.localtime (st.st_mtime))
doc.save ()
คุณสามารถดำเนินการค้นหาข้อความเต็มรูปแบบโดยใช้ตัวดำเนินการค้นหา Django อ่านเอกสาร Django สำหรับข้อมูลเพิ่มเติม
MyIndex.objects.filter (content__search = 'Foobar')
แบบสอบถามจะถูกส่งผ่านโดยตรงกับสฟิงซ์ดังนั้นสฟิงซ์ไวยากรณ์แบบสอบถามขยายเป็นที่เคารพนับถือ
หน่วยทดสอบ
สฟิงซ์แบ็กเอนด์สำหรับ Django จะไม่สนใจ create_test_db และโทร destroy_test_db สายเหล่านี้จะล้มเหลวเมื่อฐานข้อมูลสฟิงซ์มีการกำหนดค่าป้องกันคุณจากการทดสอบการทำงาน แต่นี้หมายความว่าการกำหนดค่าฐานข้อมูลสฟิงซ์ใด ๆ ที่จะนำมาใช้ในระหว่างการทดสอบ ตราบใดที่คุณเขียนทดสอบของคุณด้วยนี้ในใจมีควรจะไม่มีปัญหา . จำไว้ว่าคุณสามารถใช้การเชื่อมต่อฐานข้อมูล test_name พารามิเตอร์ที่จะเปลี่ยนเส้นทางการค้นหาการเชื่อมต่อฐานข้อมูลที่แตกต่างกันในระหว่างการวิ่งทดสอบ

ต้องการ

  • หลาม
  • Django

ความคิดเห็นที่ django_sphinx_db

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!