Điểm:3

Làm cách nào để lập chỉ mục lại tất cả nội dung cho công cụ tìm kiếm cốt lõi?

lá cờ br

Có cách nào để lập chỉ mục lại tất cả nội dung cho công cụ tìm kiếm cốt lõi không?

Trong các phiên bản cũ hơn, bạn có thể lập chỉ mục lại bằng drush:

tìm kiếm drush-reindex --immediate --verbose

Tuy nhiên, điều này dường như không còn là một lựa chọn nữa. Trong các phiên bản gần đây hơn của drush, người ta có thể làm điều này:

tìm kiếm drush-api-reindex

Tuy nhiên, lệnh đó dành cho mô-đun API Tìm kiếm chứ không phải dành cho chỉ mục tìm kiếm cốt lõi.

Làm cách nào để lập chỉ mục lại chỉ mục tìm kiếm cốt lõi hàng loạt? Cron sẽ chỉ lập chỉ mục tối đa 500 mục cùng một lúc, nhưng tôi có hàng chục nghìn mục để lập chỉ mục.

Điểm:2
lá cờ cn

Bạn có thể dùng dịch vụ chỉ mục tìm kiếm trực tiếp

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

và sau đó chạy drush cron thường xuyên như bạn cần.

Trong một vòng lặp Bash chẳng hạn:

cho (( c=1; c<=5; c++ )); làm drush cron; xong
lá cờ br
Điều này đánh dấu các mục để lập chỉ mục lại, nhưng tôi không nghĩ rằng nó lập chỉ mục lại chúng. Điều này có gì khác với việc nhấp vào nút "Chỉ mục lại trang web" tại admin/config/search/pages không?
4uk4 avatar
lá cờ cn
Câu trả lời này là về một giải pháp tập lệnh thay thế lệnh drush đơn lẻ không còn khả dụng bằng nhiều lệnh để lập chỉ mục lại hàng loạt. Nó không phải về giao diện người dùng. Ngoài ra, tùy chọn ngay lập tức để chạy tùy chọn này trong một đợt duy nhất có những hạn chế của nó.Ngay cả khi lệnh cũ vẫn còn, việc lập chỉ mục lại nên được chạy theo đợt để tránh hết thời gian chờ và giới hạn bộ nhớ.
lá cờ br
Nếu tôi chạy hàm markForReindex() này, rồi chạy cron một lần, điều này có dẫn đến việc tất cả nội dung được lập chỉ mục không? Nó không xuất hiện như vậy. Nó dường như có tác dụng tương tự như nhấp vào nút "Lập chỉ mục lại trang web" tại admin/config/search/pages và sau đó chạy cron. Nói cách khác, nó sẽ lập chỉ mục lại một đợt -- không phải tất cả nội dung.
lá cờ br
Vấn đề với các lô là sẽ mất hơn hai tuần để lập chỉ mục tất cả nội dung với tốc độ này. Có hàng chục nghìn mục để lập chỉ mục.
Kevin avatar
lá cờ in
Tại sao phải mất hàng tuần để lập chỉ mục? Tôi có một trang web với 120.000 mục và chỉ mất vài giờ (do nó cũng trích xuất và lập chỉ mục các tệp đính kèm PDF) qua Drush. Tôi sẽ chỉ chuyển sang API tìm kiếm/Cơ sở dữ liệu API tìm kiếm, nó tốt hơn hàng triệu lần so với mô-đun tìm kiếm cốt lõi.
lá cờ br
Tôi tin rằng tôi phải sử dụng mô-đun tìm kiếm cốt lõi vì nó phụ thuộc vào bộ lọc "Từ khóa tìm kiếm" của Chế độ xem. Một cách riêng biệt, tôi đang sử dụng Search API cho công cụ tìm kiếm chính của trang web. Nhưng tôi có bộ lọc Chế độ xem mà tôi cần chức năng tìm kiếm cốt lõi. Tại sao phải mất hàng tuần? Tôi không biết. Những gì tôi thấy là nếu tôi chạy cron, nó sẽ hoàn thành từ 13% đến 14%, v.v. Và tại sao chạy cron là cách duy nhất để lập chỉ mục lại? Hoặc là nó? Điều gì xảy ra nếu tôi không muốn các quy trình khởi tạo cron khác chạy?
4uk4 avatar
lá cờ cn
Bạn không cần phải đợi hàng tuần, bạn có thể chạy `drush cron` liên tục. Sau đó, việc bạn đã định cấu hình kích thước lô nào không quan trọng, chi phí chung cho mỗi lần chạy lô sẽ không tạo ra nhiều khác biệt. Nếu bạn không muốn chạy các quy trình do cron khởi tạo khác, bạn có thể gọi trực tiếp hook `search_cron()`.
4uk4 avatar
lá cờ cn
... nhược điểm, bạn có thể gặp sự cố khi chạy cron đồng thời. Vì vậy, tốt hơn nên sử dụng `drush cron`.
lá cờ br
Cảm ơn. Tôi đã chạy `drush cron`. Có vẻ như `search_cron()` mất nhiều thời gian. Trong thiết bị đầu cuối, đầu ra là `"Bắt đầu thực thi search_cron()"` và chỉ bị treo. Tôi không biết liệu nó có đang làm gì hay không, nhưng nếu tôi làm mới `admin/config/search/pages` cứ sau vài phút, số lượng mục được lập chỉ mục sẽ không thay đổi. Việc chạy cron dường như không bao giờ hoàn thành. ps -- Trên thực tế, tôi vừa thấy một thay đổi tại `admin/config/search/pages`, nhưng chỉ một mục được thêm vào chỉ mục sau mỗi vài phút.
4uk4 avatar
lá cờ cn
Trong cài đặt Drupal bình thường, bạn có thể lập chỉ mục 500 mục cùng một lúc. Nếu việc hiển thị các nút được lập chỉ mục tốn nhiều thời gian hơn bình thường, bạn cần giảm số lượng mục cho đến khi tập lệnh kết thúc trong một khoảng thời gian hợp lý. Xem INDEXING THROTTLE trên admin/config/search/pages
lá cờ br
Tôi đã thiếu các chỉ mục trong bảng cơ sở dữ liệu search_index, điều này làm chậm quá trình lập chỉ mục lại một cách đáng kể. Điều đó hiện đã được sửa và các lần chạy định kỳ có thể hoàn tất. Sẽ mất khoảng 2 phút cho mỗi lần chạy cron nếu tôi đặt Bộ điều chỉnh chỉ mục thành 500. Vì vậy, thực sự không phải là không thực tế trong trường hợp của tôi khi chạy cron nhiều lần cho đến khi hoàn thành.
4uk4 avatar
lá cờ cn
Sử dụng một vòng lặp, tôi thêm một ví dụ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.