Chcę, aby tylko niektóre węzły były indeksowane. Moduł "search config" twierdzi, że ma taką możliwość, ale nie działa. Jak więc albo edytować moduł węzła, aby indeksować tylko niektóre węzły, albo jeszcze lepiej, zastosować moduł, który może to dla mnie zrobić?Jak ograniczyć wyszukiwanie drupalne przed indeksowaniem wszystkich typów zawartości?
Odpowiedz
To a long standing feature request, ale wygląda na to, że już zostało zepchnięte na przynajmniej Drupal 8:/
Można znaleźć kilka propozycji obejścia w dyskusji żądanie cecha połączonego powyżej, ale podejście „norma” wykorzystywane przez moduł konfiguracji wyszukiwania to described here. Nie zapobiega on indeksowaniu węzłów, ale manipuluje zapytaniami, aby ignorować określone wpisy (np. Typy węzłów), aby nie pojawiały się na stronach wyników wyszukiwania.
Ponieważ obecnie nie ma lepszego rozwiązania (afaik), zgadzam się z komentarzem ceejayoz'a, że najpierw należy sprawdzić, dlaczego moduł konfiguracji wyszukiwania nie działa dla ciebie przed rozpoczęciem niestandardowego kodowania własnego rozwiązania.
Jeśli musisz użyć edytora samego modułu węzła, to miejsce, od którego należy zacząć, to node_update_index()
.
Tutaj jest kwerenda, która określa, co musi być indeksowane, od node_update_index():
SELECT n.nid FROM {node} n
LEFT JOIN {search_dataset} d ON d.type = 'node' AND d.sid = n.nid
WHERE d.sid IS NULL OR d.reindex <> 0
ORDER BY d.reindex ASC, n.nid ASC
Nie można zapobiec skrypt indeksujący z systemem. Ale możesz oszukać, że zapytanie do treści myślącej zostało już zaindeksowane przez wstawienie fałszywych wpisów do {search_dataset}.
Na przykład, jeśli używasz MySQL, to zrobić na cron:
INSERT INTO {search_dataset}
(sid, type, data, reindex)
SELECT nid, 'node', '', 0 FROM {node} WHERE node.type IN (RESTRICTED_TYPES)
ON DUPLICATE KEY UPDATE reindex = 0, data = ''
Zamień „RESTRICTED_TYPES” z listy typów węzłów i zrobić podobną zapytanie dla każdego podmiotu, który chcesz ograniczyć od Szukaj.
Możesz również wyczyścić tabelę search_index, która może stać się bardzo nieporęczna, na przykład: "DELETE from search_index, gdzie sid w (SELECT nid FROM node WHERE node.type IN (RESTRICTED_TYPES)" – aaronbauman
Jeszcze jedno, możesz musisz wyczyścić tabelę search_total ręcznie, jeśli masz bardzo dużą bazę danych: "USUŃ FROM search_total WHERE słowo NIE IN (WYBIERZ DISTINCT słowo z search_index)". W przeciwnym razie w module wyszukiwania kończy się pamięć, próbując załadować wszystkie brakujące elementy w pojedyncze zapytanie. – aaronbauman
- 1. Jak ograniczyć skrypt zawartości rozszerzenia Chrome do określonych typów treści?
- 2. Jak ograniczyć klasę szablonów do określonych typów wbudowanych?
- 3. przeciążeniem Funkcja szablonowe dla wszystkich typów String
- 4. Lista wszystkich typów sqibase sql
- 5. ograniczyć wszystkich użytkowników do 1 sesji
- 6. Java: WatchService zostaje poinformowany przed skopiowaniem zawartości
- 7. Jak mogę ograniczyć liczbę punktów przed sortowaniem w zapytaniu Solr?
- 8. Wyszukiwanie tekstowe wszystkich plików .xib w Xcode?
- 9. Nie można zmienić zawartości odwiedzanych: przed pseudoelementami
- 10. requestFeature() musi być wywołana przed dodaniem zawartości
- 11. Wyszukiwanie indeksów wszystkich wystąpień elementu w wektorze
- 12. Wyszukiwanie wszystkich rekordów bez powiązanych z nimi
- 13. Ograniczenia typu we wszystkich instancjach rodzinnych typów
- 14. Zarejestruj dla wszystkich typów plików (CFBundleDocumentTypes)
- 15. columnDefinition = „text” dla wszystkich typów baz danych
- 16. GWT TypeOracle.getTypes nie zwraca wszystkich typów
- 17. Jak zabezpieczyć program QSpinBox przed automatycznym podświetlaniem zawartości?
- 18. Test pustej wartości uniwersalny dla wszystkich typów
- 19. Usuwanie wszystkich typów komentarzy w pliku Javy
- 20. Czy porównać pracę dla wszystkich typów?
- 21. Jak ograniczyć formaty zasobów w pliku tras Railsowych
- 22. Jak włączyć pasek szybkiego wyświetlania do wyświetlania wszystkich typów plików?
- 23. Jak częściowo specjalizować szablon klasy dla wszystkich typów pochodnych?
- 24. Jak zrobić elastyczne wyszukiwanie dodać pole sygnatury czasowej do każdego dokumentu we wszystkich indeksach?
- 25. Odwzorowywanie typów zawartości rozszerzeń w Apache CXF JAX-RS
- 26. Sprawdzanie poprawności wielu typów zawartości za pomocą spinacza i szyn
- 27. Regex dla wszystkich spacji przed numerem
- 28. Wyszukiwanie GIT zdalne wszystkie gałęzie dla zawartości pliku?
- 29. Wyszukiwanie w SharePoint nie indeksowanie zawartości bibliotek dokumentów
- 30. MATLAB: wyodrębnij submatrix z logicznym indeksowaniem
Definiuj "nie działa". Czy skontaktowałeś się z opiekunami konfiguracji wyszukiwania w celu uzyskania wsparcia? – ceejayoz
Nie działa, tzn. Uniemożliwia ich wyświetlenie w wynikach wyszukiwania, ale nie zatrzymuje indeksowania tych węzłów. Właśnie tego potrzebuję. – coderama