ลูกค้ารายนี้เลิกใช้แล้ว ตั้งแต่ Enterprise Search เวอร์ชัน 7.13.0 เป็นต้นไป เรากำลังนำผู้ใช้ไปยังไคลเอ็นต์ Enterprise Search PHP ใหม่ และเลิกใช้งานไคลเอ็นต์นี้
ไคลเอนต์นี้จะเข้ากันได้กับรุ่น Enterprise Search 7.x ทั้งหมด แต่จะเข้ากันไม่ได้กับรุ่น 8.x ความพยายามในการพัฒนาโครงการนี้ของเราจะถูกจำกัดอยู่เพียงการแก้ไขข้อบกพร่องเท่านั้น การปรับปรุงในอนาคตทั้งหมดจะเน้นที่ Enterprise Search PHP Client
ขอบคุณ! - ยางยืด
ไคลเอนต์ PHP บุคคลที่หนึ่งสำหรับการสร้างประสบการณ์การค้นหาที่ยอดเยี่ยมและเกี่ยวข้องด้วย Elastic App Search
การใช้ไคลเอนต์นี้จะถือว่าคุณมีอินสแตนซ์ของ Elastic App Search ที่ใช้งานอยู่แล้ว
คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ Elastic App Search ได้ที่: https://www.elastic.co/app-search
คุณสามารถติดตั้งไคลเอนต์ในโครงการของคุณโดยใช้ผู้แต่ง:
composer require elastic/app-search
ลูกค้ารายนี้ได้รับเวอร์ชันและเผยแพร่ควบคู่ไปกับ App Search
เพื่อรับประกันความเข้ากันได้ ให้ใช้เวอร์ชันล่าสุดของไลบรารีนี้ภายในเวอร์ชันหลักของการใช้งาน App Search ที่เกี่ยวข้อง
ตัวอย่างเช่น สำหรับ App Search 7.3
ให้ใช้ 7.3
ของไลบรารีนี้หรือสูงกว่า แต่ไม่ใช่ 8.0
หากคุณใช้เวอร์ชัน SaaS ที่มีอยู่ใน Swiftype.com ของ App Search คุณควรใช้เวอร์ชัน 7.5.x ของไคลเอ็นต์
หากต้องการสร้างอินสแตนซ์ไคลเอนต์ใหม่คุณสามารถใช้ ElasticAppSearchClientClientBuilder
:
$ apiEndpoint = ' http://localhost:3002/ ' ;
$ apiKey = ' private-XXXXXXXXXXXX ' ;
$ clientBuilder = Elastic AppSearch Client ClientBuilder :: create ( $ apiEndpoint , $ apiKey );
$ client = $ clientBuilder -> build ();
หมายเหตุ:
ไคลเอ็นต์ผลลัพธ์จะเป็นประเภท ElasticAppSearchClientClient
คุณสามารถค้นหาตำแหน่งข้อมูล API และ URL คีย์ API ของคุณได้ในส่วนข้อมูลรับรองของแดชบอร์ด App Search
คุณสามารถใช้คีย์ API ประเภทใดก็ได้ (ส่วนตัว สาธารณะ หรือผู้ดูแลระบบ) ไคลเอนต์จะส่งข้อยกเว้นหากคุณพยายามดำเนินการที่ไม่ได้รับอนุญาตสำหรับคีย์ที่ใช้
วิธีการส่วนใหญ่ของ API ต้องการให้คุณมีสิทธิ์เข้าถึง Engine
หากต้องการตรวจสอบว่ามี Engine อยู่และดึงข้อมูลการกำหนดค่าหรือไม่ คุณสามารถใช้เมธอด Client::getEngine
:
$ engine = $ client -> getEngine ( ' my-engine ' );
หากยังไม่มี Engine คุณสามารถสร้างได้โดยใช้เมธอด Client::createEngine
:
$ engine = $ client -> createEngine ( ' my-engine ' , ' en ' );
พารามิเตอร์ตัวที่สอง ( $language
) เป็นทางเลือก ตั้งค่าเป็น null
เพื่อใช้ภาษา universal
อ่านเพิ่มเติมเกี่ยวกับการรองรับภาษา
คุณสามารถใช้เมธอด Client::indexDocuments
เพื่อสร้างดัชนีเอกสารบางส่วนลงใน Engine:
$ documents = [
[ ' id ' => ' first-document ' , ' name ' => ' Document name ' , ' description ' => ' Document description ' ],
[ ' id ' => ' other-document ' , ' name ' => ' Other document name ' , ' description ' => ' Other description ' ],
];
$ indexingResults = $ client -> indexDocuments ( ' my-engine ' , $ documents );
อาร์เรย์ $indexingResults
จะมีผลลัพธ์ของการจัดทำดัชนีของแต่ละเอกสาร คุณควรตรวจสอบเนื้อหาของผลลัพธ์เสมอ
อ่านเพิ่มเติมเกี่ยวกับการจัดทำดัชนีเอกสาร
คุณสามารถใช้เมธอด Client::search
เพื่อค้นหาใน Engine ของคุณ:
$ searchParams = [
' page ' => [ ' current ' => 1 , ' size ' => 10 ]
];
$ searchResponse = $ client -> search ( ' my-engine ' , ' search text ' , $ searchParams );
หากคุณต้องการจับคู่เอกสารทั้งหมด คุณสามารถใช้และเว้นคำค้นหา ''
เป็นพารามิเตอร์ตัวที่สอง ( $queryText
)
พารามิเตอร์ $searchRequestParams
เป็นทางเลือก และสามารถใช้เพื่อใช้คุณลักษณะการค้นหาขั้นสูง พารามิเตอร์ที่อนุญาตคือ:
ชื่อพาราม | URL เอกสารประกอบ |
---|---|
page | https://swiftype.com/documentation/app-search/api/search#paging |
filters | https://swiftype.com/documentation/app-search/api/search/filters |
facets | https://swiftype.com/documentation/app-search/api/search/facets |
sort | https://swiftype.com/documentation/app-search/api/search/sorting |
boosts | https://swiftype.com/documentation/app-search/api/search/boosts |
search_fields | https://swiftype.com/documentation/app-search/api/search/search-fields |
result_fields | https://swiftype.com/documentation/app-search/api/search/result-fields |
group | https://swiftype.com/documentation/app-search/api/search/grouping |
คำตอบการค้นหาจะมีอย่างน้อยฟิลด์เมตาและฟิลด์ผลลัพธ์ตามที่แสดงในตัวอย่างนี้:
[
' meta ' => [
' warnings ' => [],
' page ' => [
' current ' => 1 ,
' total_pages ' => 1 ,
' total_results ' => 1 ,
' size ' => 10
],
' request_id ' => ' feff7cf2359a6f6da84586969ef0ca89 '
],
' results ' => [
[
' id ' => [ ' raw ' => ' first-document ' ],
' name ' => [ ' raw ' => ' Document name ' ],
' description ' => [ ' raw ' => [ ' Document description ' ]
]
]
]
]
วิธี | คำอธิบาย | เอกสารประกอบ |
---|---|---|
createEngine | สร้างเครื่องยนต์ใหม่ พารามิเตอร์ : - $name (จำเป็น)- $language | เอกสารปลายทาง |
createMetaEngine | สร้างเมตาเอ็นจิ้นใหม่ พารามิเตอร์ : - $name (จำเป็น)- $sourceEngines (จำเป็น) | เอกสารปลายทาง |
addMetaEngineSource | เพิ่มซอร์สเอ็นจิ้นให้กับเมตาเอ็นจิ้นที่มีอยู่ พารามิเตอร์ : - $engineName (จำเป็น)- $sourceEngines (จำเป็น) | เอกสารปลายทาง |
createCuration | สร้างการดูแลจัดการใหม่ พารามิเตอร์ : - $engineName (จำเป็น)- $queries (จำเป็น)- $promotedDocIds - $hiddenDocIds | เอกสารปลายทาง |
createSynonymSet | สร้างชุดคำพ้องความหมายใหม่ พารามิเตอร์ : - $engineName (จำเป็น)- $synonyms (จำเป็น) | เอกสารปลายทาง |
deleteCuration | ลบการดูแลจัดการตามรหัส พารามิเตอร์ : - $engineName (จำเป็น)- $curationId (จำเป็น) | เอกสารปลายทาง |
deleteDocuments | ลบเอกสารด้วย ID พารามิเตอร์ : - $engineName (จำเป็น)- $documentIds (จำเป็น) | เอกสารปลายทาง |
deleteEngine | ลบเครื่องยนต์ตามชื่อ พารามิเตอร์ : - $engineName (จำเป็น) | เอกสารปลายทาง |
deleteMetaEngineSource | ลบซอร์สเอ็นจิ้นออกจากเมตาเอ็นจิ้น พารามิเตอร์ : - $engineName (จำเป็น)- $sourceEngines (จำเป็น) | เอกสารปลายทาง |
deleteSynonymSet | ลบคำพ้องความหมายที่กำหนดโดย id พารามิเตอร์ : - $engineName (จำเป็น)- $synonymSetId (จำเป็น) | เอกสารปลายทาง |
getApiLogs | บันทึก API จะแสดงคำขอ API และข้อมูลการตอบสนองในระดับเครื่องยนต์ พารามิเตอร์ : - $engineName (จำเป็น)- $fromDate (จำเป็น)- $toDate (จำเป็น)- $currentPage - $pageSize - $query - $httpStatusFilter - $httpMethodFilter - $sortDirection | เอกสารปลายทาง |
getCountAnalytics | ส่งกลับจำนวนคลิกและจำนวนการค้นหาทั้งหมดในช่วงเวลาหนึ่ง พารามิเตอร์ : - $engineName (จำเป็น)- $filters - $interval | เอกสารปลายทาง |
getCuration | รับการดูแลจัดการด้วย ID พารามิเตอร์ : - $engineName (จำเป็น)- $curationId (จำเป็น) | เอกสารปลายทาง |
getDocuments | ดึงเอกสารตั้งแต่หนึ่งรายการขึ้นไปโดยใช้รหัส พารามิเตอร์ : - $engineName (จำเป็น)- $documentIds (จำเป็น) | เอกสารปลายทาง |
getEngine | ดึงข้อมูลเครื่องยนต์ตามชื่อ พารามิเตอร์ : - $engineName (จำเป็น) | เอกสารปลายทาง |
getSchema | ดึงข้อมูลสคีมาปัจจุบันสำหรับเครื่องยนต์นั้น พารามิเตอร์ : - $engineName (จำเป็น) | เอกสารปลายทาง |
getSearchSettings | เรียกการตั้งค่าการค้นหาปัจจุบันสำหรับเอ็นจิ้น พารามิเตอร์ : - $engineName (จำเป็น) | เอกสารปลายทาง |
getSynonymSet | ดึงข้อมูลคำพ้องความหมายที่กำหนดโดย id พารามิเตอร์ : - $engineName (จำเป็น)- $synonymSetId (จำเป็น) | เอกสารปลายทาง |
getTopClicksAnalytics | ส่งกลับจำนวนคลิกที่ได้รับจากเอกสารจากมากไปน้อย พารามิเตอร์ : - $engineName (จำเป็น)- $query - $pageSize - $filters | เอกสารปลายทาง |
getTopQueriesAnalytics | ส่งคืนการวิเคราะห์คำค้นหาตามจำนวนการใช้งาน พารามิเตอร์ : - $engineName (จำเป็น)- $pageSize - $filters | เอกสารปลายทาง |
indexDocuments | สร้างหรืออัปเดตเอกสาร พารามิเตอร์ : - $engineName (จำเป็น)- $documents (จำเป็น) | เอกสารปลายทาง |
listCurations | ดึงข้อมูลการดูแลจัดการที่มีอยู่สำหรับเครื่องยนต์ พารามิเตอร์ : - $engineName (จำเป็น)- $currentPage - $pageSize | เอกสารปลายทาง |
listDocuments | แสดงรายการเอกสารที่มีอยู่ทั้งหมดพร้อมการสนับสนุนการแบ่งหน้าเสริม พารามิเตอร์ : - $engineName (จำเป็น)- $currentPage - $pageSize | เอกสารปลายทาง |
listEngines | ดึงข้อมูลเอ็นจิ้นทั้งหมดพร้อมการสนับสนุนการแบ่งหน้าเสริม พารามิเตอร์ : - $currentPage - $pageSize | เอกสารปลายทาง |
listSynonymSets | ดึงข้อมูลชุดคำพ้องความหมายที่มีอยู่สำหรับเครื่องยนต์ พารามิเตอร์ : - $engineName (จำเป็น)- $currentPage - $pageSize | เอกสารปลายทาง |
logClickthrough | ส่งข้อมูลเกี่ยวกับผลลัพธ์ที่คลิก พารามิเตอร์ : - $engineName (จำเป็น)- $queryText (จำเป็น)- $documentId (จำเป็น)- $requestId - $tags | เอกสารปลายทาง |
multiSearch | ดำเนินการค้นหาหลายครั้งในคำขอเดียวกัน พารามิเตอร์ : - $engineName (จำเป็น)- $queries (จำเป็น) | เอกสารปลายทาง |
querySuggestion | ให้คำแนะนำคำค้นหาที่เกี่ยวข้องสำหรับคำค้นหาที่ไม่สมบูรณ์ พารามิเตอร์ : - $engineName (จำเป็น)- $query (จำเป็น)- $fields - $size | เอกสารปลายทาง |
resetSearchSettings | รีเซ็ตการตั้งค่าการค้นหาสำหรับเครื่องยนต์ พารามิเตอร์ : - $engineName (จำเป็น) | เอกสารปลายทาง |
search | ช่วยให้คุณค้นหา แง่มุม และกรองข้อมูลของคุณได้ พารามิเตอร์ : - $engineName (จำเป็น)- $queryText (จำเป็น)- $searchRequestParams | เอกสารปลายทาง |
updateCuration | อัปเดตการดูแลจัดการที่มีอยู่ พารามิเตอร์ : - $engineName (จำเป็น)- $curationId (จำเป็น)- $queries (จำเป็น)- $promotedDocIds - $hiddenDocIds | เอกสารปลายทาง |
updateDocuments | การปรับปรุงเอกสารบางส่วน พารามิเตอร์ : - $engineName (จำเป็น)- $documents (จำเป็น) | เอกสารปลายทาง |
updateSchema | อัปเดตสคีมาสำหรับเอ็นจิ้นปัจจุบัน พารามิเตอร์ : - $engineName (จำเป็น)- $schema (จำเป็น) | เอกสารปลายทาง |
updateSearchSettings | อัปเดตการตั้งค่าการค้นหาสำหรับเครื่องยนต์ พารามิเตอร์ : - $engineName (จำเป็น)- $searchSettings (จำเป็น) | เอกสารปลายทาง |
โค้ดสำหรับตำแหน่งข้อมูลจะถูกสร้างขึ้นโดยอัตโนมัติโดยใช้ OpenAPI Generator เวอร์ชันที่กำหนดเอง
หากต้องการสร้างจุดสิ้นสุดใหม่ ให้ใช้ docker laucher ที่บรรจุใน vendor/bin
:
./vendor/bin/elastic-openapi-codegen.sh
ตัวสร้างแบบกำหนดเองจะถูกสร้างขึ้นและเปิดใช้งานโดยใช้ไฟล์ข้อมูลจำเพาะ Open API ต่อไปนี้: resources/api/api-spec.yml
จากนั้นคุณสามารถคอมมิตและประชาสัมพันธ์ไฟล์ api-spec ที่แก้ไขแล้วและไฟล์โค้ดตำแหน่งข้อมูลของคุณได้
คลาสไคลเอ็นต์และ readme อาจมีการเปลี่ยนแปลงได้ในบางกรณี อย่าลืมรวมไว้ในความมุ่งมั่นของคุณ!
หากมีบางอย่างไม่ทำงานตามที่คาดไว้ โปรดเปิดปัญหา
ทางออกที่ดีที่สุดของคุณคือการอ่านเอกสาร
คุณสามารถตรวจสอบฟอรัมสนทนาของชุมชน Elastic ได้
เรายินดีต้อนรับผู้ร่วมโครงการ ก่อนที่คุณจะเริ่มต้น โปรดทราบสองสามข้อ...
Apache 2.0 © ยืดหยุ่น
ขอขอบคุณผู้มีส่วนร่วมทุกคน!