Score:3

จะจัดทำดัชนีเนื้อหาทั้งหมดสำหรับเครื่องมือค้นหาหลักได้อย่างไร

ธง br

มีวิธีสร้างดัชนีเนื้อหาทั้งหมดสำหรับเครื่องมือค้นหาหลักใหม่หรือไม่

ในเวอร์ชันเก่า คุณสามารถจัดทำดัชนีใหม่ด้วย drush:

drush search-reindex --ทันที --verbose

อย่างไรก็ตาม ดูเหมือนจะไม่ใช่ตัวเลือกอีกต่อไป ใน drush เวอร์ชันล่าสุด เราสามารถทำได้:

ค้นหา drush-api-reindex

อย่างไรก็ตาม คำสั่งนั้นมีไว้สำหรับโมดูล Search API ไม่ใช่สำหรับดัชนีการค้นหาหลัก

ฉันจะจัดทำดัชนีดัชนีการค้นหาหลักใหม่เป็นกลุ่มได้อย่างไร Cron จะสร้างดัชนีได้สูงสุด 500 รายการต่อครั้ง แต่ฉันมีรายการหลายหมื่นรายการให้จัดทำดัชนี

Score:2
ธง cn

คุณสามารถใช้ บริการดัชนีการค้นหา โดยตรง

drush ev "\Drupal::service('search.index')->markForReindex();"

แล้วเรียกใช้ ดรัช บ่อยเท่าที่คุณต้องการ

ในวง Bash เช่น:

สำหรับ (( c=1; c<=5; c++ )); ทำ drush cron; เสร็จแล้ว
br flag
นี่เป็นการทำเครื่องหมายรายการสำหรับการจัดทำดัชนีใหม่ แต่ฉันไม่คิดว่าจะทำดัชนีใหม่ สิ่งนี้แตกต่างจากการคลิกปุ่ม "สร้างดัชนีไซต์ใหม่" ที่ admin/config/search/pages หรือไม่
4uk4 avatar
cn flag
คำตอบนี้เกี่ยวกับโซลูชันการเขียนสคริปต์ซึ่งแทนที่คำสั่ง drush เดียวที่ไม่มีแล้วด้วยหลายคำสั่งเพื่อจัดทำดัชนีใหม่เป็นกลุ่ม ไม่เกี่ยวกับ UI นอกจากนี้ ตัวเลือกในทันทีเพื่อเรียกใช้สิ่งนี้ในชุดเดียวก็มีข้อจำกัดแม้ว่าคำสั่งเก่าจะยังใช้งานได้อยู่ก็ตาม ควรทำการจัดทำดัชนีใหม่เป็นชุดเพื่อหลีกเลี่ยงการหมดเวลาและขีดจำกัดของหน่วยความจำ
br flag
ถ้าฉันเรียกใช้ฟังก์ชัน markForReindex() นี้ แล้วเรียกใช้ cron หนึ่งครั้ง จะส่งผลให้เนื้อหาทั้งหมดถูกจัดทำดัชนีหรือไม่ ไม่ปรากฏว่าเป็นเช่นนั้น ดูเหมือนว่าจะมีผลเหมือนกับการคลิกปุ่ม "สร้างดัชนีไซต์ใหม่" ที่ admin/config/search/pages แล้วเรียกใช้ cron กล่าวอีกนัยหนึ่ง มันจะจัดทำดัชนีใหม่ชุดหนึ่ง -- ไม่ใช่เนื้อหาทั้งหมด
br flag
ปัญหาเกี่ยวกับแบทช์คือจะใช้เวลามากกว่าสองสัปดาห์ในการจัดทำดัชนีเนื้อหาทั้งหมดในจังหวะนี้ มีรายการนับหมื่นรายการที่จะจัดทำดัชนี
Kevin avatar
in flag
เหตุใดจึงใช้เวลาหลายสัปดาห์ในการจัดทำดัชนี ฉันมีไซต์ที่มี 120,000 รายการและใช้เวลาเพียงไม่กี่ชั่วโมง (เนื่องจากยังแยกและจัดทำดัชนีไฟล์แนบ PDF) ผ่าน Drush ฉันจะเปลี่ยนไปใช้ Search API / Search API Database ซึ่งดีกว่าโมดูลการค้นหาหลักล้านเท่า
br flag
ฉันเชื่อว่าฉันต้องใช้โมดูลการค้นหาหลักเนื่องจากเป็นการพึ่งพาสำหรับตัวกรอง Views "Search Keywords" นอกจากนี้ ฉันกำลังใช้ Search API สำหรับเครื่องมือค้นหาหลักของไซต์ แต่ฉันมีตัวกรอง Views ซึ่งฉันต้องการฟังก์ชันการค้นหาหลัก ทำไมต้องใช้เวลาหลายสัปดาห์? ฉันไม่รู้. สิ่งที่ฉันเห็นคือถ้าฉันเรียกใช้ cron มันจะไปจากที่สมบูรณ์ 13% เป็น 14% ที่สมบูรณ์ ฯลฯ และทำไมการเรียกใช้ cron จึงเป็นวิธีเดียวที่จะจัดทำดัชนีใหม่ หรือมันคืออะไร? จะเกิดอะไรขึ้นหากฉันไม่ต้องการให้กระบวนการที่เริ่มต้นโดย cron ทำงาน
4uk4 avatar
cn flag
คุณไม่ต้องรอเป็นสัปดาห์ คุณสามารถเรียกใช้ `drush cron` วนกลับไปกลับมาได้ จากนั้น ไม่สำคัญว่าคุณได้กำหนดค่าขนาดแบทช์เท่าใด โอเวอร์เฮดสำหรับการรันแบทช์แต่ละครั้งจะไม่สร้างความแตกต่างมากนัก หากคุณไม่ต้องการเรียกใช้กระบวนการที่เริ่มต้นโดย cron คุณสามารถเรียกใช้ hook `search_cron()` ได้โดยตรง
4uk4 avatar
cn flag
... ข้อเสีย คุณอาจพบปัญหาในการรัน cron พร้อมกัน ใช้ `drush cron` ดีกว่า
br flag
ขอบคุณ. ฉันวิ่ง `drush cron` ดูเหมือนว่า `search_cron()` ใช้เวลานานมาก ในเทอร์มินัล เอาต์พุตจะไปถึง `"กำลังเริ่มการดำเนินการของ search_cron()"` และหยุดทำงาน ฉันไม่รู้ว่ากำลังทำอะไรอยู่หรือไม่ แต่ถ้าฉันรีเฟรช `admin/config/search/pages` ทุกสองสามนาที จำนวนรายการที่จัดทำดัชนีจะไม่เปลี่ยนแปลง การเรียกใช้ cron ดูเหมือนจะไม่เสร็จสมบูรณ์ ป.ล. -- ที่จริงฉันเพิ่งเห็นการเปลี่ยนแปลงที่ `admin/config/search/pages` แต่มีเพียงรายการเดียวที่เพิ่มลงในดัชนีทุก ๆ นาที
4uk4 avatar
cn flag
ในการติดตั้ง Drupal แบบปกติ คุณสามารถสร้างดัชนีได้ครั้งละ 500 รายการ หากการแสดงโหนดที่จะจัดทำดัชนีใช้เวลานานกว่าปกติ คุณต้องลดจำนวนรายการลงจนกว่าสคริปต์จะสิ้นสุดในเวลาที่เหมาะสม ดู INDEXING THROTTLE ใน admin/config/search/pages
br flag
ฉันไม่มีดัชนีในตารางฐานข้อมูล search_index ซึ่งทำให้การสร้างดัชนีใหม่ช้าลงอย่างมาก ตอนนี้ได้รับการแก้ไขแล้ว และรัน cron ได้สำเร็จ ใช้เวลาประมาณ 2 นาทีต่อการเรียกใช้ cron หากฉันตั้งค่า Indexing Throttle เป็น 500 ดังนั้น ในกรณีของฉันจึงไม่ใช่เรื่องที่ทำไม่ได้ที่จะเรียกใช้ cron หลายๆ ครั้งจนกว่าจะเสร็จสิ้น
4uk4 avatar
cn flag
ใช้ลูป ฉันเพิ่มตัวอย่าง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา