นี่คือไคลเอ็นต์ PHP อย่างเป็นทางการสำหรับ Elasticsearch
ดาวน์โหลด Elasticsearch เวอร์ชันล่าสุด หรือ ลงทะเบียน เพื่อทดลองใช้ Elastic Cloud ฟรี
โปรดดูส่วนการติดตั้งของเอกสารการเริ่มต้นใช้งาน
โปรดดูส่วนการเชื่อมต่อของเอกสารการเริ่มต้นใช้งาน
ไคลเอนต์ elasticsearch-php
มีจุดสิ้นสุดมากกว่า 400 จุดสำหรับการโต้ตอบกับ Elasticsearch รายการตำแหน่งข้อมูลเหล่านี้มีอยู่ในเอกสารอย่างเป็นทางการของ Elasticsearch API
ที่นี่เราได้รายงานการดำเนินการพื้นฐานที่คุณสามารถทำได้กับไคลเอนต์: จัดทำดัชนี ค้นหา และลบ
ไคลเอ็นต์นี้ได้รับเวอร์ชันและเผยแพร่พร้อมกับเซิร์ฟเวอร์ Elasticsearch
เพื่อรับประกันความเข้ากันได้ ให้ใช้เวอร์ชันล่าสุดของไลบรารีนี้ภายในเวอร์ชันหลักของการใช้งาน Enterprise Search ที่เกี่ยวข้อง
ตัวอย่างเช่น สำหรับ Elasticsearch 7.16
ให้ใช้ 7.16
ของไลบรารีนี้หรือสูงกว่า แต่ไม่ใช่ 8.0
ไคลเอนต์ Elasticsearch เข้ากันได้กับ PHP เวอร์ชันที่ดูแลรักษาอยู่ในปัจจุบัน
ไคลเอนต์ภาษาสามารถใช้งานร่วมกันได้ หมายความว่าไคลเอนต์รองรับการสื่อสารกับ Elasticsearch เวอร์ชันรองที่มากกว่าหรือเท่ากันโดยไม่หยุดชะงัก ไม่ได้หมายความว่าไคลเอนต์จะรองรับคุณสมบัติใหม่ของ Elasticsearch เวอร์ชันใหม่กว่าโดยอัตโนมัติ สามารถทำได้หลังจากการเปิดตัวไคลเอนต์เวอร์ชันใหม่เท่านั้น ตัวอย่างเช่น เวอร์ชันไคลเอนต์ 8.12 จะไม่รองรับคุณสมบัติใหม่ของ Elasticsearch เวอร์ชัน 8.13 โดยอัตโนมัติ ซึ่งจำเป็นต้องมีเวอร์ชันไคลเอนต์ 8.13 สำหรับสิ่งนั้น ไคลเอนต์ภาษา Elasticsearch เข้ากันได้กับการกระจายเริ่มต้นเท่านั้น และไม่มีการรับประกัน
เวอร์ชัน Elasticsearch | สาขา Elasticsearch-PHP | รองรับ |
---|---|---|
หลัก | หลัก | |
8.x | 8.x | 8.x |
7.x | 7.x | 7.17 |
elasticsearch-php
เวอร์ชัน 8.0.0 มีการใช้งานใหม่เมื่อเทียบกับ 7.x รองรับ PSR-7 สำหรับข้อความ HTTP และ PSR-18 สำหรับการสื่อสารไคลเอนต์ HTTP
เราพยายามลดการแตกของ BC ให้มากที่สุดเท่าที่จะเป็นไปได้ด้วย 7.x
แต่มีความแตกต่าง (ใหญ่) อยู่บ้าง:
ElasticElasticsearch
Exception
โดยใช้เนมสเปซ ElasticElasticsearchException
ข้อยกเว้นทั้งหมดจะขยายอินเทอร์เฟซ ElasticsearchException
เช่นเดียวกับใน 7.xConnectionPool
ใน NodePool
การตั้งชื่อ connection
ต่อไม่ชัดเจนเนื่องจากวัตถุเป็นโหนด (โฮสต์)คุณสามารถดูไฟล์ BREAKING_CHANGES สำหรับข้อมูลเพิ่มเติม
หากคุณต้องการจำลองไคลเอนต์ Elasticsearch คุณเพียงแค่ต้องจำลองไคลเอนต์ HTTP PSR-18
ตัวอย่างเช่น คุณสามารถใช้ php-http/mock-client ดังนี้:
use Elastic Elasticsearch ClientBuilder ;
use Elastic Elasticsearch Response Elasticsearch ;
use Http Mock Client ;
use Nyholm Psr7 Response ;
$ mock = new Client (); // This is the mock client
$ client = ClientBuilder:: create ()
-> setHttpClient ( $ mock )
-> build ();
// This is a PSR-7 response
$ response = new Response (
200 ,
[Elasticsearch:: HEADER_CHECK => Elasticsearch:: PRODUCT_NAME ],
' This is the body! '
);
$ mock -> addResponse ( $ response );
$ result = $ client -> info (); // Just calling an Elasticsearch endpoint
echo $ result -> asString (); // This is the body!
เรากำลังใช้ ClientBuilder::setHttpClient()
เพื่อตั้งค่าไคลเอ็นต์จำลอง คุณสามารถระบุคำตอบที่คุณต้องการได้โดยใช้ฟังก์ชัน addResponse($response)
อย่างที่คุณเห็น $response
เป็นวัตถุตอบกลับ PSR-7 ในตัวอย่างนี้ เราใช้อ็อบเจ็กต์ NyholmPsr7Response
จากโปรเจ็กต์ nyholm/psr7 หากคุณใช้ PHPUnit คุณสามารถจำลอง ResponseInterface
ได้ดังนี้:
$ response = $ this -> createMock ( ' PsrHttpMessageResponseInterface ' );
ประกาศ : เราได้เพิ่มส่วนหัวพิเศษในการตอบกลับ HTTP นี่คือส่วนหัวการตรวจสอบผลิตภัณฑ์ และจำเป็นสำหรับการรับประกันว่า elasticsearch-php
กำลังสื่อสารกับเซิร์ฟเวอร์ Elasticsearch 8.0 ขึ้นไป
สำหรับข้อมูลเพิ่มเติม คุณสามารถอ่านส่วน Mock client ของเอกสารประกอบ PHP-HTTP
หากมีบางอย่างไม่ทำงานตามที่คาดไว้ โปรดเปิดปัญหา
คุณสามารถตรวจสอบฟอรัมสนทนาของชุมชน Elastic ได้
เรายินดีต้อนรับผู้ร่วมโครงการ ก่อนที่คุณจะเริ่มต้น ข้อมูลที่เป็นประโยชน์บางอย่าง...
8.0
โปรดใช้สาขา 8.0
สำหรับ 8.1
ให้ใช้สาขา 8.1
และอื่นๆmaster
เว้นแต่ว่าคุณต้องการสนับสนุนเวอร์ชันการพัฒนาของไคลเอ็นต์ ( master
แสดงถึงเวอร์ชันหลักถัดไป)ขอขอบคุณล่วงหน้าสำหรับการสนับสนุนของคุณ!
MIT © ยืดหยุ่น