Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Suchergebnisse sortieren noch Position des Suchbegriffs

Eingetragen von vistree (238)
am 18.01.2015 - 16:49 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Hallo zusammen,
zu folgendem Problem habe ich mir nun den Wolf gesucht - aber keine Antwort gefunden. Das kann eigentlich nur daran liegen, dass ich nicht die korrekten Suchbegriffe verwendet habe. Denn mein Anliegen wird sicherlich schon oft besprochen sein ....

Ich habe mit Views eine Produktsuche realisiert. Als exposed filter verwende ich ein global: combine Feld. Durchsucht werden soll das Titel-Feld und das body-Feld.
Ich möchte nun nach einem Begriff suchen und die Ergebnisse sollen so sortiert werden, dass die Produkte zuerst angezeigt werden, bei denen der Suchbegriff möglichst weit vorne steht.

Ich möchte Bei der Suche nach Drupal also erst die Beiträge angezeigt bekommen, bei denen Drupal am Anfang des Titels steht.
Danach kommen die, bei denen Drupal weiter hinten im Titel steht. Erst dann die, bei denen Drupal im body-Feld steht.

Geht sowas? Wenn ja, wie gehe ich das richtig an. Geht das mit dem views-exposed Filter oder muss ich da ein anderes Filtermodul (wie SOLR) verwenden?

‹ [gelöst]Registrierte User Daten exportieren Ein Testbericht für Neueinsteiger! ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Eine fertige Lösung dazu habe

Eingetragen von montviso (2188)
am 18.01.2015 - 22:11 Uhr

Eine fertige Lösung dazu habe ich noch nicht gesehen (was natürlich nichts heißt).
Stichworte wären vermutlich - drupal view sort relevance.
Ich wüßte nur Folgendes:
Mit dem Modul Views PHP ( https://www.drupal.org/project/views_php ) kannst Du ein Feld vom Typ global php anlegen.
In diesem Feld kannst Du mit PHP die Position des Suchbegriffs im String ermitteln und daraus eine Zahl generieren.
Und auf dieses Feld (das Du in der Ansicht auf unsichtbar stellst) kannst Du unten in der Sortierung zugreifen.
Hier in Antwort 3 sind die Schritte erklärt (natürlich für einen anderen Anwendungsfall).
Die Filterung auf den Begriff machst Du ganz normal mit exposed Filter.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Search API am besten mit ApacheSolr

Eingetragen von C_Logemann (912)
am 18.01.2015 - 22:31 Uhr

Es ist ohnehin nicht ratsam vor allem nicht bei Websites mit vielen besuchen und/oder viel Inhalt Volltextsuchen auf der MySQL-DB laufen zu lassen. Mit Search API kann Views auf viel flexiblere Such Indizes effizient zugreifen. Dort kann man die Text-Felder dann gewichten. Ob das mit "steht am Anfang des Titels" klappt weiß ich gerade nicht. Aber vor allem mit Apache Solr geht dann richtig die Post ab bezüglich Geschwindigkeit.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, das hört sich nach

Eingetragen von vistree (238)
am 19.01.2015 - 13:00 Uhr

Hallo montviso, das hört sich nach einem pragmatischen Ansatz an. Ich werde das mal testen. Problem könnte sein, dass ich hier ca. 150.000 nodes habe, die durchsucht werden. Die live-Berechnung mittels views-php wird wahrscheinlich ziemlich an die Performance gehen???
Vielen Dank auf jeden Fall schon einmal für den Tipp!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Carsten, vielen Dank

Eingetragen von vistree (238)
am 19.01.2015 - 13:03 Uhr

Hallo Carsten,
vielen Dank für die Rückmeldung! Wie bekomme ich denn den Apache Solr dazu mit einem Views exposed filter zu arbeiten? Oder macht man das ganz anders? Bevor ich hier zu stark rumexperemtiere (ich erinnere mich, dass solr ein recht komplexes Thema ist....) müsste ich prüfen, ob ich damit meinen Ansatz geregelt bekomme. Gibt es hier ein gutes Tutorial?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Tutorial weiß ich gerade nicht

Eingetragen von C_Logemann (912)
am 19.01.2015 - 13:12 Uhr

Das Entscheidende ist, den View neu zu erstellen und dabei nicht direkt in Nodes sondern in einem SearchAPI Index suchen zu lassen, den man dafür anlegen muss. Das Nutzen von dessen Feldern auch in Exposed Filtern mit Volltext-Suche ist dann kein Problem.
Bei der Menge an Nodes würde ich dringend dazu raten zusätzlich ApacheSolr zu nutzen und auch sämtliche Views, die in diesem riesigen Datenbestand suchen, mit SeacrhAPI Solr zu betreiben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

SearchAPI

Eingetragen von stBorchert (6003)
am 19.01.2015 - 13:12 Uhr
vistree schrieb

... Problem könnte sein, dass ich hier ca. 150.000 nodes habe, die durchsucht werden. Die live-Berechnung mittels views-php wird wahrscheinlich ziemlich an die Performance gehen???

Oha. Ja, die Performance könnte dann schon ein ziemlicher Knackpunkt sein.
Überleg mal wirklich, ob Du nicht prinzipiell (wie schon von Carsten vorgeschlagen) [do:search_api SearchAPI] und Apache Solr als Backend einsetzen möchtest.
Die Berechnung ist dann allerdings noch ein anderes Problem. Anstelle von [do:views_php Views PHP] ist es besser, Dir einen eigenen Sort Handler zu bauen, in dem dann die Berechnung passiert. So wirklich schön ist das vom Prinzip her dann allerdings nicht, da Du hier kaum Chancen hast, die Werte der Berechnung zwischenzuspeichern, also bei jedem Aufruf die Werte neu ermitteln musst :/
Aber der Sort Handler ist schonmal ein sauberer Ansatz als custom PHP direkt im View ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, wenn es so viele

Eingetragen von montviso (2188)
am 19.01.2015 - 13:33 Uhr

Ja, wenn es so viele Datensätze sind, dann ist die pragmatische Lösung nicht optimal.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 2 Tagen
  • Hey danke
    vor 2 Wochen 3 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 3 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 3 Wochen 5 Tagen
  • In der entsprechenden View
    vor 3 Wochen 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 5 Tagen
  • gelöst
    vor 6 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20457

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 33 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association