Puncte:3

Cum se reindexează tot conținutul pentru motorul de căutare de bază?

drapel br

Există o modalitate de a reindexa tot conținutul pentru motorul de căutare de bază?

În versiunile mai vechi, puteți reindexa cu drush:

drush search-reindex --immediate --verbose

Cu toate acestea, aceasta nu mai pare a fi o opțiune. În versiunile mai recente de drush, se poate face acest lucru:

drush search-api-reindex

Cu toate acestea, această comandă este pentru modulul Search API și nu pentru indexul de căutare de bază.

Cum reindexez indexul de căutare de bază în bloc? Cron va indexa doar până la 500 de articole la un moment dat, dar am zeci de mii de articole de indexat.

Puncte:2
drapel cn

Puteți folosi serviciu de index de căutare direct

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

și apoi fugi drush cron de câte ori este nevoie.

Într-o buclă Bash, de exemplu:

pentru (( c=1; c<=5; c++ )); face drush cron; Terminat
drapel br
Aceasta marchează articolele pentru reindexare, dar nu cred că le reindexează. Este diferit de a face clic pe butonul „Reindexați site-ul” de la admin/config/search/pages?
4uk4 avatar
drapel cn
Acest răspuns este despre o soluție de scripting care înlocuiește comanda unică drush care nu mai este disponibilă cu mai multe pentru a reindexa în bloc. Nu este vorba despre UI. În plus, opțiunea imediată de a rula acest lucru într-un singur lot avea limitările sale.Chiar și atunci când vechea comandă era încă disponibilă, reindexarea ar fi trebuit să fie executată în loturi pentru a evita time-out-urile și limitele de memorie.
drapel br
Dacă rulez această funcție markForReindex() și apoi rulez cron o dată, va avea ca rezultat indexarea întregului conținut? Nu pare asa. Se pare că are același efect ca și când faceți clic pe butonul „Re-indexați site-ul” de la admin/config/search/pages și apoi rulați cron. Cu alte cuvinte, va reindexa un lot -- nu tot conținutul.
drapel br
Problema cu loturile este că va dura mai mult de două săptămâni pentru a indexa tot conținutul în acest ritm. Există zeci de mii de articole de indexat.
Kevin avatar
drapel in
De ce ar dura săptămâni până la indexare? Am un site cu 120.000 de articole și durează doar câteva ore (din cauza extragerii și indexării atașamentelor PDF) prin Drush. Aș trece doar la Search API / Search API Database, este de un milion de ori mai bun decât modulul de căutare de bază.
drapel br
Cred că trebuie să folosesc modulul de căutare de bază, deoarece este o dependență pentru filtrul „Cuvinte cheie de căutare” din Vizualizări. Separat, folosesc Search API pentru motorul de căutare principal al site-ului. Dar am un filtru Vizualizări pentru care am nevoie de funcția de căutare de bază. De ce ar dura săptămâni? Nu știu. Ceea ce văd este că dacă rulez cron, acesta trece de la 13% complet la 14% complet etc. Și de ce rularea cron este singura modalitate de a reindexa? Sau este? Ce se întâmplă dacă nu vreau să ruleze alte procese inițiate de cron?
4uk4 avatar
drapel cn
Nu trebuie să așteptați săptămâni, puteți rula `drush cron` într-o buclă spate în spate. Apoi, indiferent de dimensiunea lotului pe care ați configurat-o, costul general pentru fiecare rulare a lotului nu va face o mare diferență. Dacă nu doriți să rulați alte procese inițiate de cron, puteți invoca direct cârligul `search_cron()`.
4uk4 avatar
drapel cn
... dezavantajul, ați putea întâmpina probleme cu rulările cron concomitente. Deci mai bine folosiți `drush cron`.
drapel br
Mulțumiri. Am alergat `drush cron`. Se pare că `search_cron()` durează foarte mult. În terminal, ieșirea ajunge la `"Pornirea execuției search_cron()"` și pur și simplu se blochează. Nu știu dacă face ceva sau nu, dar dacă reîmprospătesc `admin/config/search/pages` la fiecare câteva minute, numărul de articole indexate nu se schimbă. Execuția cron nu pare să se finalizeze niciodată. ps -- De fapt, tocmai am văzut o schimbare la `admin/config/search/pages`, dar doar un articol este adăugat la index la fiecare câteva minute.
4uk4 avatar
drapel cn
Într-o instalare normală a Drupal, puteți indexa 500 de articole la un moment dat. Dacă redarea nodurilor care urmează să fie indexate necesită mai mult timp decât de obicei, trebuie să reduceți numărul de elemente până când scriptul se termină într-un timp rezonabil. Consultați INDEXARE ACCELERATĂ pe admin/config/search/pages
drapel br
Îmi lipseau indici din tabelul bazei de date search_index, care încetineau dramatic reindexarea. Acest lucru este acum remediat și rulările cron se pot finaliza. Este nevoie de aproximativ 2 minute pe cron rulare dacă setez Indexing Throttle la 500. Deci, de fapt, nu este imposibil în cazul meu să rulez cron de multe ori până când se termină.
4uk4 avatar
drapel cn
Folosește o buclă, adaug un exemplu.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.