Addon RexSearch (Fulltext-Search-Addon)

Alles über die Anwendung und Entwicklung von AddOns.

Addon RexSearch (Fulltext-Search-Addon)

Beitragvon Xong » 23. Sep 2009, 17:45

Ich habe ein neues Fulltext-Search-Addon entwickelt.

Name: RexSearch
Aktuelle Version: 0.7.2
Download: http://www.redaxo.de/index.php?article_id=180&addon_id=587
Dokumentation: http://wiki.redaxo.de/index.php?n=R4.RexSearch

Alle Informationen zum Einsatz von RexSearch sollten der Wikiseite entnommen werden.

Veraltet:
Die Suche erfolgt über den Aufruf der Methode search() eines Objekts der Klasse RexSearch.
Dieser Methode muss der Suchstring übergeben werden.
Rückgabewert ist ein Array mit 4 Schlüsseln:
  • hits: Enthält ein Array der gefundenen Treffer
  • keywords: Enthält ein Array der eingegebenen Suchbegriffe
  • sql: Enthält den SQL-Code der Suchabfrage
  • blacklisted: Enthält ein Array der Blacklistworte, die im Suchstring vorhanden sind
Jeder Treffer (also jeder Eintrag unter hits) ist selbst ein Array:
  • fid: Enthält die ID (z. B. Artikel-ID oder File-ID)
  • table: Enthält die Tabelle, aus der der Index ursprünglich erstellt wurde
  • column: Enthält der Spalte, aus der der Index ursprünglich erstellt wurde
  • type: Enthält entweder "article" oder "db_column", je nachdem ob es ein indexierter Artikel oder Spalte ist
  • clang: Enthält der Sprach-ID
  • unchangedtext: Enthält den Originaltext
  • plaintext: Enthält den Plaintext (= strip_tags(Originaltext))
  • highlightedtext: Enthält den Plaintext mit hervorgehobenen Suchbegriffen


Ich erwarte noch Fehler beim Umgang mit diesem Addon. Diese Fehler sollten in diesem Thread gemeldet werden, damit ich mich schnell darum kümmern kann.


Über Wünsche, Anregungen und Kritik freue ich mich sehr und versuche diese in das Addon einfließen zu lassen.
Zuletzt geändert von Xong am 12. Nov 2010, 03:02, insgesamt 10-mal geändert.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon kronos » 24. Sep 2009, 08:26

Bugreport #1:
"highlightedtext" Feld im Return-Array ist leer.

Irgendwas geht in der Funktion getHighlightedText schief.

Die zweite Zeile der Funktion
$textArray = split('~\s+~',$_text, 200);

scheint bei mir nicht zu machen, sie nimmt den ganzen Text aus $_text und setzt in in $textArray[0].

Damit ist das natürlich zu gross und in der foreach schleife wird das break ausgelöst und ein leerer String zurückgegeben.

Ich bin kein Regular Expression experte, weiss daher nicht so genau was die Zeile den eigentlich machen soll, aber ich vermute mal in einzelne wörter trennen?

Habe testweise die Zeile mal durch
$textArray = explode(' ',$_text, 200);
ersetzt (trennt die Wörter an Leerzeichen), damit liefert er dann ein Ergebnis.
Aber wie gesagt, gut möglich das die Zeile oben noch etwas anderes machen soll, was das hier nicht tut.

Ich benutzt PHP 5.2.11 auf nem Linux Server, mit Apache, vielleicht liegts ja an der PHP version das es anders reagiert als bei dir.


Bugreport #2:
<br /> werden entfernt ohne Leerzeichen um den Plaintext zu erzeugen, wenn keine da sind. Das sorgt dafür das aus
Hallo<br />
Welt<br />

folgendes wird:
HalloWelt
kronos
 
Beiträge: 34
Registriert: 8. Mai 2009, 07:19

Beitragvon Xong » 24. Sep 2009, 09:21

Danke für deine Rückmeldung.

Kannst du mir für das Problem mit dem highlightedtext einen Zugang zu der Seite geben oder einfach den Text, den du dafür benutzt, und den eingegebenen Suchbegriff posten?

Das Problem mit dem br wird sofort gelöst.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon Skerbis » 24. Sep 2009, 09:22

Hallo,
Bei mir zeigt das Suchergebnis Ergenisse an die nur im Backend sichtbar sind, die eigentlichen Inhalte werden garnicht angezeigt:

Suche nach: AWO ergibt:
z.B.:

Artikel mit der ID 10
Eingebundener Artikel: Visitenkarte

Das ist eine Info, die eigentlich nur im Backend zu sehen ist.
Es wird auch kein hit angezeigt.

Muss ich noch irgendwas einstellen?
Zuletzt geändert von Skerbis am 24. Sep 2009, 10:52, insgesamt 1-mal geändert.
Skerbis
 
Beiträge: 886
Registriert: 4. Aug 2006, 13:06
Wohnort: Rheinberg

Beitragvon kronos » 24. Sep 2009, 09:44

@Skerbis:
Ja das ist mir auch aufgefallen, dass Addon indiziert die Ausgabe im Backend, für einige Module ist das nicht gleich der Ausgabe im Frontend.
Ich vermute das liegt daran das der Index im Backend angelegt wird.

"Search Fulltext" löst das irgendwie dadurch das man auf "Index anlegen" klickt und dann muss man eine Suche im Frontend ausführen (egal nach was), beim ersten aufruf im Frontend wird dann der Index angelegt.
Aber keine Ahnung wie einfach das zu programieren ist.

@Xong: Bin nicht ganz sicher was du meinst?
Ich suche ein Wort, dass auf der Seite definitiv vorkommt, er findet auch die Seite korrekt (zeigt die ID an) aber nicht den teaser.
Als ausgabe Modul hab ich das beispiel-modul vom ersten post genommen.

Habe dann ein var_dump($hit) in die foreach schleife eingefügt um mir den Array anzuzeigen, und er zeigt dann
["highlightedtext"]=> string(0) ""
kronos
 
Beiträge: 34
Registriert: 8. Mai 2009, 07:19

Beitragvon Xong » 24. Sep 2009, 09:49

Hallo Thomas!

Ich kann das nicht nachvollziehen.

Der Artikel mit der ID 10 wird doch gar nicht gefunden. Vielleicht hilft schon eine Neuindexierung.

Eine genaue Dokumentation erfolt auch noch.
Die ToDo-Liste dafür sieht so aus:
  • Beschreibung der Klasse (Schnittstellenbeschreibung, etc.)
  • Beschreibung, wie einzelne Spalten indexiert werden und wo der Unterschied zu der Indexierung von Artikeln liegt
  • Verschiedene Beispiele (Einfaches Suchmodul, komplexes Suchmodul, Suchmodul mit Pagination)
  • Beschreibung, wann eine (De)Indexierung automatisch erfolgt (bzw. erfolgen kann)
  • Weitere Dokumentation, die von euch gewünscht wird...

Außerdem gibt es auch eine kleine ToDo-Liste zur Verbesserung des Addons:
  • Das Ausgabe-Array wird angepasst. Es wird einen Highlighted-Text geben, der den Text enthält, wo der bzw. die Suchbegriffe, das erste Mal auftauchten.
  • Hinzu kommt dann der Teaser-Text, der den Anfang des entsprechenden Artikels enthält.
  • Weitere Vorschläge, die von euch kommen...
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon Xong » 24. Sep 2009, 09:53

kronos hat geschrieben:@Xong: Bin nicht ganz sicher was du meinst?
Ich suche ein Wort, dass auf der Seite definitiv vorkommt, er findet auch die Seite korrekt (zeigt die ID an) aber nicht den teaser.
Ich brauche den HTML-Code der gesamten Seite.


kronos hat geschrieben:Habe dann ein var_dump($hit) in die foreach schleife eingefügt um mir den Array anzuzeigen, und er zeigt dann
["highlightedtext"]=> string(0) ""
Das deutet darauf hin, dass dein HTML-Code fehlerhaft ist.
Leg mal einen Artikel an, der den gleichen Text enthält, aber aller HTML-Tags entledigt ist (also C&P der Seite im Frontend und einfach als Ausgabe in ein Testmodul, welches in den Testartikel eingebunden wird). Wenn der Fehler dann immer noch auftaucht, brauche ich unbedingt den HTML-Code, weil der Fehler dann wohl doch bei mir liegt. (Asche auf mein Haupt!) =)

Das Problem mit der Indexierung des Frontends, wird sofort behoben. Die neue Version werde ich aber erst nach dem Mittagessen hochladen.

Ich geh dann mal Bugs fixen. :wink:
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon Skerbis » 24. Sep 2009, 10:24

Xong hat geschrieben:Hallo Thomas!

Ich kann das nicht nachvollziehen.

Der Artikel mit der ID 10 wird doch gar nicht gefunden. Vielleicht hilft schon eine Neuindexierung.


War ja nur ein Besipiel ...
Ich habe jetzt mal neu indiziert.
Geb mal als Suchbegriff Scheid ein.

Da bekomme ich teilweise nur die ID der Artikel
Oder ebend "Eingebundener Artikel:"
(Das sollte man eigentlich nicht sehen dürfen
Skerbis
 
Beiträge: 886
Registriert: 4. Aug 2006, 13:06
Wohnort: Rheinberg

Beitragvon kronos » 24. Sep 2009, 10:34

@Xong: Habe dir ne PM mit den Infos geschickt.
kronos
 
Beiträge: 34
Registriert: 8. Mai 2009, 07:19

Beitragvon Xong » 24. Sep 2009, 10:35

Skerbis hat geschrieben:War ja nur ein Besipiel ...
Ich habe jetzt mal neu indiziert.
Geb mal als Suchbegriff Scheid ein.

Da bekomme ich teilweise nur die ID der Artikel
Oder ebend "Eingebundener Artikel:"
(Das sollte man eigentlich nicht sehen dürfen
Ja, da haste recht.

Das Problem ist aber sehr einfach zu lösen. Bei der Indexierung wird einfach in den Frontend-Modus geschalten und danach wieder auf den vorherigen Zustand gewechselt. Dafür speichere ich einfach $REX['REDAXO'] temporär, setze es auf false, indexiere und versetze $REX['REDAXO'] wieder in seinen Ursprungszustand. =)

Das einzige Problem, was ich jetzt noch sehe, ist, dass Artikel, die nur eine Weiterleitung enthalten auf diese Weise nicht indiziert werden. Dafür bräuchte man dann ein spezielles Weiterleitungsmodul, welches neben der Weiterleitung noch die Ausgabe des Artikels, auf den weitergeleitet wird, mit ausgibt. Das sieht der Endbenutzer ja nicht, aber das Addon wird damit hinreichend bedient.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon Xong » 24. Sep 2009, 17:47

Eine neue Version ist hochgeladen.

Über kleine Testberichte würde ich mich freuen.

Leider habe ich nicht die Zeit, auf die Änderungen einzugehen. Meine Großeltern warten auf meinen Besuch. =)

Trotzdem schon mal viel Spaß beim Testen und Spielen mit den Einstellungen.

Wichtig: Nicht vergessen, nach der Installation des Addons die Indexierung zu starten. Sonst wird herzlich wenig gefunden. =)

PS:
@kronos: Kannst du mal schauen, warum in deinen Artikeln das BOM drin ist?
Der Text wurde in meiner Redaxo-Version übrigens gut indexiert und auch die Nummern wurden gefunden.
Hast du vielleicht doch mal einen Testzugang zu dem System?
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon Koala » 24. Sep 2009, 20:38

Xong hat geschrieben:Das einzige Problem, was ich jetzt noch sehe, ist, dass Artikel, die nur eine Weiterleitung enthalten auf diese Weise nicht indiziert werden.
Wozu auch? Es macht keinen Sinn Artikel (respektive das entsprechende Modul) die eh nur weiterleiten zu indexieren. Deshalb können diese im search_fulltext-Addon direkt per Aktion von der Indexierung ausgeschlossen werden. Das war ja eines der Probleme die damals bei der Entwicklung auftraten und mit Hilfe der Aktion gelöst wurden.
.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX_DOKU :: REX_WIKI :: REX_FAQ :: REX_WIKIPEDIA
Benutzeravatar
Koala
 
Beiträge: 1528
Registriert: 3. Okt 2005, 12:20
Wohnort: Cottbus

Beitragvon Xong » 24. Sep 2009, 21:33

Koala hat geschrieben:
Xong hat geschrieben:Das einzige Problem, was ich jetzt noch sehe, ist, dass Artikel, die nur eine Weiterleitung enthalten auf diese Weise nicht indiziert werden.
Wozu auch? Es macht keinen Sinn Artikel (respektive das entsprechende Modul) die eh nur weiterleiten zu indexieren.
Richtig.

Koala hat geschrieben:Deshalb können diese im search_fulltext-Addon direkt per Aktion von der Indexierung ausgeschlossen werden. Das war ja eines der Probleme die damals bei der Entwicklung auftraten und mit Hilfe der Aktion gelöst wurden.
XSearch indiziert aber weitergelittene Artikel gar nicht erst.
Außerdem ist es möglich, Artikel bequem über die Einstellungen des Addons von der Indexierung auszuschließen.

Ich weiß, dass ein Addon für eine Sache, die es schon gibt und vielleicht auch schon sehr gut gelöst ist, erstmal auf Skepsis stößt.

Allerdings bin ich davon überzeugt, dass dieses Suchaddon, einen echten Mehrwert bietet. Warum, erkläre ich im Verlauf der nächsten Tage, wenn ich die Dokumentation und Beispiele veröffentliche.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon kronos » 25. Sep 2009, 08:01

Xong hat geschrieben:@kronos: Kannst du mal schauen, warum in deinen Artikeln das BOM drin ist?
Der Text wurde in meiner Redaxo-Version übrigens gut indexiert und auch die Nummern wurden gefunden.
Hast du vielleicht doch mal einen Testzugang zu dem System?

Scheint mit der neuen version von gestern jetzt zu funktionieren.

Bei weiteren Problemen lass ichs dich wissen ;)
kronos
 
Beiträge: 34
Registriert: 8. Mai 2009, 07:19

Beitragvon Xong » 25. Sep 2009, 08:11

kronos hat geschrieben:Bei weiteren Problemen lass ichs dich wissen ;)
Die kann ich schon nennen.
Probleme gibt es im Moment bei der Eingabe von Prozentzeichen.
Außerdem werden noch ein paar zusätzliche Funktionen in die Klasse gepackt.

Generell wäre ich froh, wenn es noch Meinungen zu der Aufbereitung der Suchergebnisse gibt. Sollte es neben den 5 Varianten des Highlight-Texts noch andere geben?
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Nächste

Zurück zu AddOns [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron