Điểm:0

Sắp xếp theo trường ngày tùy chỉnh chậm hơn so với sắp xếp theo mức độ liên quan: Có giải pháp nào không?

lá cờ pe

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
sonfd avatar
lá cờ in
Sắp xếp ngày của bạn có sử dụng dữ liệu ngày từ chỉ mục của bạn không? hoặc chỉ là một trường ngày thông thường? Đảm bảo rằng bạn đang sử dụng dữ liệu trường ngày được lập chỉ mục.
lá cờ pe
Đó là trường ngày được lập chỉ mục. Một số chi tiết khác từ phân tích cho đến nay: thời gian kết xuất thường tệ hơn nếu tôi thực hiện tìm kiếm với sắp xếp mức độ liên quan trong bộ lọc được hiển thị trước, sau đó thay đổi nó thành ngày và áp dụng. Cho đến nay, tập hợp các bước đó có vẻ tệ hơn so với việc thực hiện tìm kiếm theo ngày trong danh sách thả xuống trước, nhưng tôi không chắc lắm về điều đó. Ngoài ra: tổng số lượt truy cập có tác động lớn. Nhiều hơn = kết xuất lâu hơn. Có thể giúp biết: chế độ xem không bao gồm bất kỳ tham chiếu thực thể nào đến những thứ làm chậm.
lá cờ pe
Một manh mối khác: Nếu tôi sử dụng 'html đã kết xuất' trong bộ lọc được hiển thị thay vì 'tìm kiếm toàn văn', thì các kết quả được sắp xếp theo trường ngày tùy chỉnh (được lập chỉ mục) sẽ nhanh hơn nhiều. Mặc dù vậy, bộ lọc html được hiển thị không cung cấp khả năng sắp xếp mức độ liên quan. Có lẽ tôi cần đặt mặc định thành 'sắp xếp mức độ liên quan & toàn văn' nhưng có một nút để định tuyến truy vấn thành 'sắp xếp ngày & html được hiển thị'. Muốn hiểu tại sao điều này đang xảy ra mặc dù.
lá cờ pe
Có thể liên quan đến vấn đề này: https://www.drupal.org/project/search_api/issues/3227268 Phần lớn cuộc thảo luận ở đó vượt quá trình độ chuyên môn hiện tại của tôi, vì vậy tôi không chắc về mức độ liên quan.
Điểm:0
lá cờ pe

Đây là một giải pháp mơ hồ, bởi vì tôi không thể xác định lý do tại sao sắp xếp lại hoạt động theo cách này.

Tuy nhiên, tôi có thể báo cáo rằng việc cài đặt Solr và chuyển chỉ mục sang phụ trợ Solr dẫn đến không còn bất kỳ sự khác biệt đáng chú ý nào giữa loại này so với loại kia.

Để làm rõ: cùng chế độ xem và trường cũng như cùng cấu hình chỉ mục. (Trong api tìm kiếm, bạn có thể chuyển phụ trợ của chỉ mục, sau đó lập chỉ mục lại). Điều này dẫn đến việc sắp xếp rất nhanh bằng cách sử dụng cùng các trang xem kết quả tìm kiếm.

Đă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.