Tôi đang sử dụng api tìm kiếm với phần phụ trợ cơ sở dữ liệu trên trang web Drupal 9.3.3.
Tôi đã lập chỉ mục 26.000 nút thuộc loại nội dung tùy chỉnh và những nút này bao gồm trường ngày tùy chỉnh: field_display_date
Chỉ mục được thiết lập để thực hiện html được hiển thị. Vì tôi cần người dùng có thể sắp xếp theo field_display_date (giảm dần) cũng như mức độ liên quan, nên tôi đã hiển thị hai loại: mức độ liên quan và ngày (sử dụng trường ngày tùy chỉnh này) và đã thêm field_display_date vào chỉ mục ở định dạng "ngày".
Mục tiêu cuối cùng là có thể nhận được các kết quả tìm kiếm có liên quan cao nhưng có thể sắp xếp chúng để xem các kết quả có liên quan cao gần đây nhất. Có lẽ có một cách hoàn toàn khác để làm điều này.
Vấn đề: với tất cả chế độ xem được thiết lập, hãy nhập cụm từ tìm kiếm để thực thi. Với cách sắp xếp được đặt thành 'mức độ liên quan' mặc định, việc trả về khá nhanh. Nếu tôi thay đổi cách sắp xếp thành 'ngày' (field_display_date: giảm dần) và gửi lại, sẽ có một thời gian chờ đợi rất lâu, thường là hết thời gian chờ của cổng.
Trên một cái không hết thời gian, chế độ xem sql và làm giảm hiệu suất cho biết điều này ...
Truy vấn
Chỉ mục: chính2
Phím: 'kiểm tra'
Các khóa được phân tích cú pháp: mảng (
'#conjunction' => 'VÀ',
0 => 'kiểm tra',
)
Các trường được tìm kiếm: rendered_item, tiêu đề
Sắp xếp: field_display_date DESC
Tùy chọn: mảng (
'search_api_view' => 'đối tượng (Drupal\views\ViewExecutable)',
'search_api_base_path' => 'search2',
)
Tìm kiếm tiêu đề2
Đường dẫn /search2
Thời gian xây dựng truy vấn 1,43 ms
Thời gian thực hiện truy vấn 2,81 ms
Xem thời gian kết xuất 43237,89 ms
Tại sao thời gian kết xuất quá cao và bất kỳ ý tưởng nào về cách khắc phục điều này? Ngoài ra, việc chuyển sang apache solr có khả năng hoạt động tốt hơn hay có kết quả tương tự không? (Vì việc thiết lập solr có vẻ khá phức tạp và tôi sẽ mất khá nhiều thời gian, tôi muốn biết liệu nó có đáng để thực hiện hay không.)
Ngược lại, đây là cùng một chế độ xem và lập chỉ mục và từ khóa tìm kiếm được sắp xếp theo mức độ liên quan...
Truy vấn
Chỉ mục: chính2
Phím: 'kiểm tra'
Các khóa được phân tích cú pháp: mảng (
'#conjunction' => 'VÀ',
0 => 'kiểm tra',
)
Các trường được tìm kiếm: rendered_item, tiêu đề
Sắp xếp: search_api_relevance DESC
Tùy chọn: mảng (
'search_api_view' => 'đối tượng (Drupal\views\ViewExecutable)',
'search_api_base_path' => 'search2',
)
Tìm kiếm tiêu đề2
Đường dẫn /search2
Thời gian xây dựng truy vấn 1,23 ms
Thời gian thực hiện truy vấn 2,68 ms
Xem thời gian kết xuất 2990,91 ms
Điều này dường như gợi ý rằng bản thân tìm kiếm và nhận được kết quả đều khá nhanh nhưng vì lý do nào đó tải trang rất chậm?
Thật thú vị, bỏ qua hoàn toàn tìm kiếm api và chỉ đưa trường nội dung vào chế độ xem thông thường và tìm kiếm theo từ khóa sẽ nhận được kết quả nhanh hơn, điều này khiến tôi nghĩ rằng mình đang làm điều gì đó không đúng ở cấp độ cơ bản.
Bộ lọc chế độ xem đơn giản không có chỉ mục, được sắp xếp theo trường_hiển thị_ngày giảm dần, tìm kiếm trường nội dung cho cùng một từ khóa...
Tiêu đề Nội dung
Đường dẫn/admin/nội dung/nút2
Thời gian xây dựng truy vấn 3,23 ms
Thời gian thực hiện truy vấn 1,2 ms
Xem thời gian kết xuất 6291,28 ms