การจัดทำดัชนี Alfresco Enterprise Search  คือผลรวมของซอฟต์แวร์ทั้งหมดสำหรับการค้นหาข้อมูลภายในองค์กร ช่วยให้คุณลืมไปว่ามีระบบจัดการเนื้อหาจำนวนมากที่ประสานกันเพื่อจัดการกับข้อมูลขาเข้า ตราบใดที่คุณมีสิทธิ์เข้าถึงข้อมูล ไม่สำคัญว่าจะมาจากสายธุรกิจใดหรือระบบการจัดการเนื้อหาใด

ในบริบทของระบบการจัดการเนื้อหา การจัดเก็บข้อมูลมักจะเป็นส่วนที่ง่าย บ่อยครั้ง ความสามารถในการค้นหาอยู่ในอันดับที่สองเมื่อต้องวิเคราะห์โซลูชัน
การเติบโตแบบออร์แกนิกของธุรกิจจำนวนมากและสายธุรกิจของพวกเขาเริ่มต้นจากการเป็นนิติบุคคลเฉพาะรายที่สามารถรวมเข้ากับธุรกิจอื่นๆ ได้ในระยะต่อมา

ณ จุดนั้น แต่ละสายธุรกิจมีแนวโน้มที่จะพัฒนาโดเมนของตนเอง ตลอดจนกลยุทธ์และโซลูชันการจัดการเนื้อหา แต่เมื่อพูดถึงการใช้ข้อมูลนั้น ทันใดนั้น กำแพงที่มองไม่เห็นของระบบการจัดการเนื้อหาแบบไซโลเริ่มปรากฏขึ้น เมื่อถึงจุดนั้น ลูกค้าของเราก็เริ่มค้นหาโซลูชันที่เราเรียกว่า Enterprise Search


การทำดัชนี Alfresco

เมื่อดูในครั้งแรก เทคนิคการค้นหาหลายอย่างดูเหมือนจะใช้ได้ แต่มีบางประเด็นที่ต้องแก้ไข เพื่อแสดงปัญหาทั่วไปที่เราพบ ทั้งในห้องปฏิบัติการและนอกระบบ เราจะใช้กรณีการใช้งานล่าสุดกรณีหนึ่งที่เราต้องแก้ไข และจะเรียกว่า “บริการค้นหา”

ภาพใหญ่: บริการค้นหานี้ใช้ CMIS API และใช้การกรองข้อความค้นหาหลังการกรองโดยมอบหมายการประเมินการอนุญาตไปยังระบบข้อมูลดั้งเดิม นี่คือวิธีการทำงาน:

  1. บ็อบผู้ใช้ที่ตรวจสอบสิทธิ์แล้วจะส่งข้อความค้นหาไปยังบริการค้นหา
  2. บริการค้นหาจะสอบถามดัชนีและเรียกค้นรายการผลลัพธ์ที่ยังไม่ได้กรองกลับคืนมา (ไม่กรองหมายความว่าสิทธิ์ของผู้ใช้ยังไม่ได้รับการประเมินในผลลัพธ์)
  3. สำหรับเอกสาร Alfresco แต่ละรายการในชุดผลลัพธ์ ผลการค้นหาต้องการยืนยันกับ Alfresco ว่า Bob มีสิทธิ์เข้าถึง (อย่างน้อย) ในระดับอ่านสำหรับเอกสารนั้นใน Alfresco 
  4. กรองผลลัพธ์ที่ผู้ใช้ไม่มีการเข้าถึงแบบอ่านออก
  5. นำเสนอผลลัพธ์แก่ผู้ใช้ปลายทาง

จุดเน้นของบทความนี้คือการจัดการกับความท้าทายด้านเวลาดัชนี ความท้าทายด้านเวลาการสืบค้นจะกล่าวถึงในบทความติดตามผล แต่เพื่อให้สามารถวาดภาพได้อย่างสมบูรณ์ เราจะอธิบายสั้นๆ ด้วย


ค้นหาองค์กร

รูปที่ 1  – ไดอะแกรมบริบทของระบบสำหรับการรวม Alfresco Content Services กับ Enterprise Search Application


ความท้าทาย

1. ความท้าทายเวลาสืบค้น

บริการค้นหาใช้เทคนิคหลังการกรอง ซึ่งหมายความว่าผลการค้นหาจะถูกกรองหลังจากดำเนินการค้นหา ดังนั้นผู้ใช้จึงเห็นเฉพาะผลลัพธ์ที่เขาสามารถเข้าถึงได้จริงเท่านั้น การตรวจสอบนี้จำเป็นต้องมีการเรียก API แบบไปกลับต่อเอกสาร ซึ่งหมายความว่าแม้จะมีการใช้ความเท่าเทียมกัน แต่ค่าใช้จ่ายของการเรียกการตรวจสอบสิทธิ์ก็อาจมีผลกระทบอย่างมากต่อประสิทธิภาพ (cfr. N+1 Select Problem  นี่เป็นอีกตัวอย่างหนึ่ง )


2. ความท้าทายด้านดัชนีเวลา

บริการค้นหาใช้ CMIS API และรวบรวมข้อมูลโครงสร้างโฟลเดอร์ทั้งหมดเพื่อค้นหาเนื้อหาใหม่เพื่อสร้างดัชนี แม้ว่าสิ่งนี้อาจดูใช้ได้ในการตั้งค่าขนาดเล็ก แต่ก็อาจนำไปสู่ปัญหาตามมาได้:

  • เนื้อหาใหม่จะไม่สามารถใช้ได้จนกว่าจะมีการรวบรวมข้อมูลฉบับเต็มครั้งถัดไป ดังนั้นกรณีที่ดีที่สุดคือคุณจะพบเนื้อหาใหม่ในวันถัดไป
  • เนื่องจาก CMIS เป็นโปรโตคอลที่ค่อนข้างคุยโว และคุณจะต้องดำเนินการตามโครงสร้างโฟลเดอร์ที่เก็บที่สมบูรณ์ ซึ่งจะใช้เวลาหลายชั่วโมง แม้กระทั่งสำหรับที่เก็บขนาดกลาง ไม่ว่าจะมีเนื้อหาใหม่จำนวนมากหรือไม่มีเนื้อหาเลยก็ตาม .

โซลูชัน – Alfresco solar API

1. แนวคิด

การใช้ CMIS เพื่อรวบรวมข้อมูลที่เก็บ Alfresco แบบเต็มเป็นโซลูชันย่อยที่เหมาะสมที่สุด Alfresco มี API สำหรับเสิร์ชเอ็นจิ้นที่พร้อมใช้งานทันที ซึ่งสามารถใช้เพื่อติดตามการเปลี่ยนแปลงใน Alfresco ได้อย่างมีประสิทธิภาพ โซลูชันของเราคือการใช้ Transaction-tracker-API ที่มีอยู่เพื่อสร้างดัชนี Alfresco แทนที่จะรวบรวมข้อมูลที่เก็บ Alfresco ทั้งหมด (โดยใช้ CMIS)


ข้อดีหลักคือ:

  • การเปลี่ยนแปลงการค้นหาใน Alfresco ค่อนข้างถูก – คุณสามารถสำรวจการเปลี่ยนแปลงทุก ๆ 15 วินาที – ซึ่งหมายความว่าผลลัพธ์ที่เป็นปัจจุบันเร็วขึ้น (~1 นาทีเทียบกับ 24 ชั่วโมง) และโหลดน้อยลงในระบบ (การเรียกใช้ API 100 ครั้งเทียบกับการเรียก API 100.000 ครั้ง) )
  • การรวบรวมข้อมูลด้วยวิธีที่สอดคล้องกันทางธุรกรรมอาจพลาดเอกสาร: จะเกิดอะไรขึ้นหากฉันย้ายเอกสารจากโฟลเดอร์ A ไปยังโฟลเดอร์ B ในขณะที่ระบบกำลังรวบรวมข้อมูลโครงสร้างโฟลเดอร์ การจัดทำดัชนี Alfresco

API นี้ใช้การตรวจสอบสิทธิ์ TLS ร่วมกัน ซึ่งหมายความว่าการเชื่อมต่อได้รับการตรวจสอบสิทธิ์ทั้งสองด้านด้วยใบรับรองเซิร์ฟเวอร์ TLS และใบรับรองไคลเอ็นต์ TLS

เนื่องจาก API นี้ใช้ JSON จึงจัดเตรียมปลายทางเพื่อทำทุกอย่างที่ดัชนีการค้นหาต้องการโดยทั่วไป:

  • ธุรกรรม – การเขียน/ลบทั้งหมดเกิดขึ้นในบันทึกธุรกรรมต่อท้ายเท่านั้น
  • โหนด – โหนด/อ็อบเจ็กต์ใดที่สร้าง/อัปเดต/ลบในธุรกรรมที่กำหนด
  • ข้อมูลเมตา – ข้อมูลเมตาแบบเต็มสำหรับโหนดและลิงก์ (การเชื่อมโยง) ระหว่างโหนด
  • การแยกข้อความของเอกสาร (ข้อความธรรมดาจาก pdf, Docx, ….)
  • การเปลี่ยนแปลง ACL – ไม่เกี่ยวข้องกับกรณีการใช้งานของเรา
  • การเปลี่ยนแปลงรูปแบบพจนานุกรม (อาจไม่เกี่ยวข้องกับกรณีการใช้งานของเรา)

Alfresco คอนเทนเนอร์ไดอะแกรม

รูปที่ 2  – ไดอะแกรมคอนเทนเนอร์สำหรับกระบวนการสร้างดัชนีที่เก็บ Alfresco


2. รายละเอียดทางเทคนิค

API นี้ใช้ได้ตั้งแต่ปี 2012 และเป็นสิ่งที่จำเป็นสำหรับกรณีการใช้งานนี้อย่างแท้จริง ขออภัย นี่เป็น API แบบปิด และ Alfresco ไม่ได้เผยแพร่เอกสาร

อย่างไรก็ตาม Alfresco เป็นโอเพ่นซอร์ส ดังนั้นเราจึงสามารถดูว่ามันทำงานอย่างไร นี่คือปลายทางหลัก 3 จุดที่สามารถใช้ในการจัดทำดัชนีและติดตามที่เก็บ:

  • รับ /api/solr/transactions?minTxnId={minTxnId}&{maxTxnId}
    • รับรายการข้อมูลการทำธุรกรรม – โดยทั่วไปใช้เพื่อรับรายการ txnIds
  • POST /api/solr/nodes 
    • พร้อมเพย์โหลด { txnIds = [ 123, 124, 125 ] }
    • หรือเพย์โหลด { fromTxnId = 123, toTxnId = 125 }
    • จะส่งคืนอาร์เรย์ของข้อมูลสถานะโหนด:  nodeId , สถานะ (อัปเดต, ลบแล้ว), nodeRef (รหัสตรรกะ) – คุณจะต้องใช้  nodeIds  ในการโทรครั้งต่อไป
  • POST /api/solr/ข้อมูลเมตา
    • พร้อมเพย์โหลด { nodeIds = [ 201, 202 ] }
    • ส่งคืนข้อมูลโหนดโดยละเอียด (~ เอกสาร/โฟลเดอร์/วัตถุ) (ข้อมูลเมตา ความสัมพันธ์ …) และสามารถใช้เพื่อสร้างดัชนีการค้นหาของคุณ

การเปลี่ยนแปลงทั้งหมดใน Alfresco จะถูกบันทึกไว้ในธุรกรรมใหม่ ดังนั้น หากคุณติดตามรหัสธุรกรรมล่าสุดที่จัดทำดัชนี คุณสามารถตรวจสอบการเปลี่ยนแปลงด้วยจุดปลาย /api/solr/transactions และอัปเดตดัชนีของคุณทีละส่วน Alfresco ทำอย่างนั้นทุก ๆ 15 วินาทีโดยค่าเริ่มต้น

โดยค่าเริ่มต้น API นี้จะเข้าถึงได้เฉพาะบนพอร์ต 8443/tcp และป้องกันด้วยการตรวจสอบสิทธิ์ mTLS (ใบรับรอง TLS ทั้งเซิร์ฟเวอร์และไคลเอ็นต์) Alfresco มีใบรับรองเริ่มต้นที่นำเข้าไปยังเบราว์เซอร์ได้ (alfresco-client.p12 พร้อมรหัสผ่าน  alfresco ) หรือใช้ร่วมกับ curl (alfresco-client.pem) หากการติดตั้ง Alfresco สร้างใบรับรองขึ้นใหม่ ตามที่คุณควรมี แต่ส่วนใหญ่ลืมขั้นตอนนี้ คุณอาจต้องแยกใบรับรองไคลเอ็นต์จาก Alfresco Search Service (Solr)

ที่เกี่ยวข้องกับงานนี้ เราได้สร้าง  โปรเจ็กต์ GitHub  พร้อมไลบรารีไคลเอนต์ Java สำหรับ API นี้ (และอีกสองสามรายการ) ยังคงอยู่ระหว่างดำเนินการ แต่ใช้งานได้อย่างสมบูรณ์และรองรับการเรียก API 3 รายการที่กล่าวถึงข้างต้น 


อนาคตของคลาวด์อยู่ในบริการที่เชื่อมต่อ การค้นหาซึ่งเป็นองค์ประกอบหลักของระบบข้อมูลใดๆ สามารถทำได้ทั้งการปรับขนาดและเข้าถึงได้มากขึ้นสำหรับบริการภายนอก สำหรับบริการภายนอกใดๆ ตอนนี้ เราสามารถจับคู่ความสามารถในการปรับขนาดและการเข้าถึงของ Alfresco ได้โดยใช้เครื่องมือเดียวกันกับที่ใช้ นั่นคือ Alfresco Solr API

สนใจรับคำปรึกษาด้านวางระบบจัดการเอกสารอิเล็กทรอนิกส์  EDMS บริการตรวจข้อสอบ นับคะแนน โดยทีมงานผู้เชี่ยวชาญจาก K&O ที่มีประสบการณ์มากว่า 15 ปี 

รวมถึงซอฟต์แวร์ระดับโลก ติดต่อ 0 2 – 8 6 0 – 6 6 5 9 หรือ E m a i l : c s @ k o . i n . t h 

สามารถติดต่อสอบถามได้โดยตรง เรามีแอดมินคอยคอบคำถาม 24 ชั้วโมงที่ Line OA

สอบถามได้สบายใจทั้ง เรื่องค่าบริการ ราคา และ งบประมาณ เพราะเป็นราคาที่สุด คุ้มที่สุด

ส า ม า ร ถ รั บ ช ม วี ดี โ อ ส า ธิ ต วิ ธี ก า ร ใช้ ง า น จ ริ ง ไ ด้ ที่ นี่

หากท่านมีความสนใจ บทความ หรือ Technology สามารถติดต่อได้ตามเบอร์ที่ให้ไว้ด้านล่างนี้
Tel.086-594-5494
Tel.095-919-6699

Leave a Reply

Your email address will not be published. Required fields are marked *