Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Hi,
hab ein ganz ganz merkwürdiges Problem.
Hab XSearch in einer Seite eingebaut die 9 sprachig ist. Clang 0 ist Dt.
Dann hab ich noch einen kleiner Autocompletter für das Suchfeld eingebaut.
In der dt-Version funktioniert alle Super, nur in den Sprachsuchen, tritt ein merkwürdiges Phänomen auf.
Wenn ich jetzt in mein Suchfeld einen Produktnamen eingebe findet XSearch nichts, wenn ich jetzt z.B. den letzten Buchstaben des Produktnamens lösche, dann wird alle 1a gefunden.
Kann mir das leider nicht erklären?
Besten Dank im voraus
hab ein ganz ganz merkwürdiges Problem.
Hab XSearch in einer Seite eingebaut die 9 sprachig ist. Clang 0 ist Dt.
Dann hab ich noch einen kleiner Autocompletter für das Suchfeld eingebaut.
In der dt-Version funktioniert alle Super, nur in den Sprachsuchen, tritt ein merkwürdiges Phänomen auf.
Wenn ich jetzt in mein Suchfeld einen Produktnamen eingebe findet XSearch nichts, wenn ich jetzt z.B. den letzten Buchstaben des Produktnamens lösche, dann wird alle 1a gefunden.
Kann mir das leider nicht erklären?
Besten Dank im voraus
Hi gege!
Kannst du mir den Inhalt der Datei settings.inc.php und den PMA-Export der Tabelle rex_587_searchindex zukommen lassen, damit ich das Problem nachvollziehen kann?
Vielleicht gibt es noch einen kleinen Bug in XSearch.gege hat geschrieben: Wenn ich jetzt in mein Suchfeld einen Produktnamen eingebe findet XSearch nichts, wenn ich jetzt z.B. den letzten Buchstaben des Produktnamens lösche, dann wird alle 1a gefunden.
Kann mir das leider nicht erklären?
Kannst du mir den Inhalt der Datei settings.inc.php und den PMA-Export der Tabelle rex_587_searchindex zukommen lassen, damit ich das Problem nachvollziehen kann?
Gege hat mich auf einen Bug in XSearch hingewiesen. Die neue Version 0.5.3 ist hochgeladen: XSearch 0.5.3
Der Fehler betrifft nur die, die sprachabhängige Suchen benutzen.
Achtung: Die neue Version speichert die Einstellungen nun anders. Alle Einstellungen auf der Einstellungsseite von XSearch und seinen Plugins Stats und Plaintext müssen deshalb ggf. neu vorgenommen werden. Merkt euch also eure alte Konfiguration bevor ihr diese neue Version installiert.
Eine Neuindexierung oder -installation ist dagegen nicht erforderlich. (Aber natürlich auch nicht hinderlich.)
Der Fehler betrifft nur die, die sprachabhängige Suchen benutzen.
Achtung: Die neue Version speichert die Einstellungen nun anders. Alle Einstellungen auf der Einstellungsseite von XSearch und seinen Plugins Stats und Plaintext müssen deshalb ggf. neu vorgenommen werden. Merkt euch also eure alte Konfiguration bevor ihr diese neue Version installiert.
Eine Neuindexierung oder -installation ist dagegen nicht erforderlich. (Aber natürlich auch nicht hinderlich.)
- gseilheimer
- Beiträge: 78
- Registriert: 3. Jan 2008, 01:31
Suche in einer bestimmten Kategorie/bestimmten Artikeln
Hallo,
ich habe das Coding für die Kategoriensuche aus dem REX-Wiki...
Fehlermeldung:
Warning: Invalid argument supplied for foreach() in /redaxo/include/addons/xsearch/classes/class.xsearch.inc.php on line 356
An dieser Zeile ($xsearch->searchInCategories(31);) stimmt wohl etwas nicht...
Für einen Tipp wäre ich sehr dankbar...
Gruß, Gilbert
ich habe das Coding für die Kategoriensuche aus dem REX-Wiki...
Fehlermeldung:
Warning: Invalid argument supplied for foreach() in /redaxo/include/addons/xsearch/classes/class.xsearch.inc.php on line 356
Code: Alles auswählen
if( !empty($_REQUEST['xsearch']) && "" != "REX_VALUE[1]" )
{
if("" != "REX_VALUE[1]")
{
$rex_value_1_coded = "REX_VALUE[1]";
$rex_value_1_decode = htmlspecialchars("REX_VALUE[1]");
}
$xsearch = new XSearch();
$xsearch->searchInCategories(31);
$result = $xsearch->search($_REQUEST['xsearch']);
if($result['count'] > 0)
{
echo '<ul class="searchresults">';
foreach($result['hits'] as $hit)
{
if($hit['type'] == 'article')
{
$article = OOArticle::getArticleById($hit['fid']);
echo '<li>
<h4><a href="'.($url = htmlspecialchars($article->getUrl())).'">'.$article->getName().'</a></h4>
<p class="highlightedtext">'.$hit['highlightedtext'].'</p>
<p class="url">'.$REX['SERVER'].rex_getUrl($hit['fid'], $hit['clang']).'</p></li>';
echo "mit kat";
}
}
echo '</ul>';
}
}
Für einen Tipp wäre ich sehr dankbar...
Gruß, Gilbert
Hallo Gilbert!
Das war ein Fehler im Wiki. Die Kategorie-IDs müssen zur Zeit per Array übergeben werden:
Das war ein Fehler im Wiki. Die Kategorie-IDs müssen zur Zeit per Array übergeben werden:
Code: Alles auswählen
$xsearch->searchInCategories(array(31));
- gseilheimer
- Beiträge: 78
- Registriert: 3. Jan 2008, 01:31
Xong hat geschrieben:Hallo Gilbert!
Das war ein Fehler im Wiki. Die Kategorie-IDs müssen zur Zeit per Array übergeben werden:Code: Alles auswählen
$xsearch->searchInCategories(array(31));
Besten Dank - die Fehlermeldung ist weg, doch sucht er nicht in den Artikeln der angegebenen Kategorie...
CATEGORIE (31)
- SUB-CATEGORIE (45)
- - Startartikel
- - Artikel-1
- - Artikel-2
- - Artikel-3
Gibt es dafür auch schon eine Lösung?
Besten Dank im Voraus für das Feedback.
Gruß, Gilbert
...
Damit wird nur in den Artikeln gesucht, die direkte Kinder der Kategorie sind.gseilheimer hat geschrieben:Besten Dank - die Fehlermeldung ist weg, doch sucht er nicht in den Artikeln der angegebenen Kategorie...
Im Wiki findest du aber ein Beispiel zu einem Modul, wo man auch in den Subkategorien suchen kann: http://wiki.redaxo.de/index.php?n=R4.XS ... le_result8
Auszug aus dem Quellcode:
Code: Alles auswählen
$xsearch->searchInCategories(a587_getCategories(true, true, $searchinIDs));
a587_getCategories($_ignoreoffline = true, $_onlyIDs = false, $_cats = false)
_ignoreoffline: true = ohne Offline-Kategorien, false = mit Offline-Kategorien
_onlyIDs: true = nur Cat-IDs werden zurückgegeben, false = Cats werden als Objekte zurückgegeben
_cats: Vorauswahl an Elternkategorien
Für deinen Fall wäre also folgender Code richtig:
Code: Alles auswählen
$xsearch->searchInCategories(a587_getCategories(true, true, array(31)));
- gseilheimer
- Beiträge: 78
- Registriert: 3. Jan 2008, 01:31
Habe es 1:1 eingefügt. Es gab keine Fehlermeldung aber leider auch keine Ergebnisse...Xong hat geschrieben:Damit wird nur in den Artikeln gesucht, die direkte Kinder der Kategorie sind.gseilheimer hat geschrieben:Besten Dank - die Fehlermeldung ist weg, doch sucht er nicht in den Artikeln der angegebenen Kategorie...
Im Wiki findest du aber ein Beispiel zu einem Modul, wo man auch in den Subkategorien suchen kann: http://wiki.redaxo.de/index.php?n=R4.XS ... le_result8
Auszug aus dem Quellcode:Edit: Funktionskopf ist so deklariert:Code: Alles auswählen
$xsearch->searchInCategories(a587_getCategories(true, true, $searchinIDs));
a587_getCategories($_ignoreoffline = true, $_onlyIDs = false, $_cats = false)
_ignoreoffline: true = ohne Offline-Kategorien, false = mit Offline-Kategorien
_onlyIDs: true = nur Cat-IDs werden zurückgegeben, false = Cats werden als Objekte zurückgegeben
_cats: Vorauswahl an Elternkategorien
Für deinen Fall wäre also folgender Code richtig:Code: Alles auswählen
$xsearch->searchInCategories(a587_getCategories(true, true, array(31)));
Vielleicht sollte ich das später nochmal versuchen...
Gruß, Gilbert
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Ist doch nicht der Tag darauf geworden, sondern erst heute.alexplus hat geschrieben:
Hab jetzt das richtige Modul benutzt und die PDF-Suche deaktiviert. Läuft. Morgen werde ich versuchen die PDF-Suche aus dem anderen Suchmodul zu integrieren.
Ich meine, ich hätte jetzt alle relevanten Stellen der DB-Suche in den Code der PDF-Suche an richtiger Stelle eingefügt, doch jetzt gibt die Suche mir keine PDF-Dateien mehr aus:
Code: Alles auswählen
<?php
define('SHOWMAX',10);
if(!empty($_REQUEST['xsearch']))
{
$xsearch = new XSearch();
$xsearch->setLimit(array($start = isset($_GET['start'])?intval($_GET['start']):0, SHOWMAX));
$xsearch->doSearchArticles(true);
$xsearch->searchInDbColumn($REX['TABLE_PREFIX'].'article', 'name');
$xsearch->searchInDbColumn($REX['TABLE_PREFIX'].'article', 'art_description');
$xsearch->searchInDbColumn($REX['TABLE_PREFIX'].'article', 'art_keywords');
$result = $xsearch->search($_REQUEST['xsearch']);
if(count($result['simwords']) > 0)
{
$newsearchString = $result['simwordsnewsearch'];
$result = $xsearch->search($newsearchString);
if($result['count'] > 0)
echo '<p>Meinten Sie <strong>'.$newsearchString.'</strong>?</p>';
}
if($result['count'] > 0)
{
echo '<ul class="searchresults">';
foreach($result['hits'] as $hit)
{
$article = OOArticle::getArticleById($hit['fid']);
if($hit['type'] == 'db_column')
$text = $hit['article_teaser'];
else
$text = $hit['highlightedtext'];
if($hit['type'] == 'file' AND $hit['fileext'] == 'pdf')
{
// PDF-Datei
$filename = explode('/', $hit['filename']);
$pdf = OOMedia::getMediaByFileName($filename[count($filename)-1]);
echo ' <li class="pdf">
<h4><a href="'.htmlspecialchars($pdf->getFullPath()).'">'.$pdf->getOrgFileName().'</a></h4>
<p class="highlightedtext">'.$text.'</p>
<p class="url">'.$REX['SERVER'].'files/'.$pdf->getOrgFileName().'</p>
</li>';
}
else
{
// Artikel oder DB-Spalte aus der Artikel-Tabelle
$article = OOArticle::getArticleById($hit['fid']);
echo ' <li>
<h4><a href="'.htmlspecialchars($article->getUrl()).'">'.$article->getName().'</a></h4>
<p class="highlightedtext">'.$text.'</p>
<p class="url">'.$REX['SERVER'].rex_getUrl($hit['fid'], $hit['clang']).'</p>
</li>';
}
}
echo '</ul>';
// Pagination
if($result['count'] > SHOWMAX)
{
$self = OOArticle::getArticleById(REX_ARTICLE_ID);
echo '<ul class="pagination">';
for($i = 0; ($i*SHOWMAX) < $result['count']; $i++)
{
if(($i*SHOWMAX) == $start)
echo '<li>'.($i+1).'</li>';
else
echo '<li><a href="'.$self->getUrl(array('xsearch' => $_REQUEST['xsearch'], 'start' => $i*SHOWMAX)).'">'.($i+1).'</a></li>';
}
echo '</ul>';
}
}
else
{
echo '<em>Leider nichts gefunden.</em>';
}
}
?>
Hi Alex!
Du hast zwei Möglichkeiten, um auch PDF-Dateien zu durchsuchen:
Mit der Methode searchInDbColumn teilst du XSearch explizit mit, dass nur die übergebenen Spalten durchsucht werden sollen.alexplus hat geschrieben:Ich meine, ich hätte jetzt alle relevanten Stellen der DB-Suche in den Code der PDF-Suche an richtiger Stelle eingefügt, doch jetzt gibt die Suche mir keine PDF-Dateien mehr aus:
Du hast zwei Möglichkeiten, um auch PDF-Dateien zu durchsuchen:
- Verzichte auf die explizite Angabe von DB-Spalten.
- Wenn es sich nur um PDF-Dateien aus dem Medienpool handelt, dann füge die Medienpooltabelle $REX['TABLE_PREFIX'].'file' hinzu.
Es wird generell nicht zwischen Groß- und Kleinschreibung unterschieden, solange keine binären Datenbanktypen verwendet werden. Eine Suche nach "begriff" findet grundsätzlich auch "BEGRIFF", "Begriff", "bEgRiFf", etc.alexplus hat geschrieben:Und dann habe ich noch eine Frage: Gibt es irgendwo die Möglichkeit, Groß-/Kleinschreibung zu ignorieren?
Die Ähnlichkeitssuche schlägt nur an, wenn zu dem Suchbegriff nichts gefunden wurde, aber eine ähnlicher Begriff existiert, der zu Suchergebnissen führt. Außerdem muss für die Ähnlichkeitssuche der Keyword-Index (TABLE_PREFIX.587_keywords) aufgebaut sein. Der wird normalerweise bei der Indexierung erzeugt.alexplus hat geschrieben:Ein Blick in die Statistik gibt mir das Gefühl, dass die Leute zunehmen schreibfaul geworden sind und die Ähnlichkeitssuche scheint da nicht zu greifen.
Wird dann auch der PDF-Inhalt durchsucht? Wenn ich die explizite Angabe entferne, hat er sie bei mir nicht mehr durchsucht. Aber ich begebe mich nochmals auf Fehlersuche. Da hatte ich wohl den Suchindex vergessen zu erneuern oder den Suchcache nicht gelöscht. Wo ist nur meine Konzentration?Xong hat geschrieben: Du hast zwei Möglichkeiten, um auch PDF-Dateien zu durchsuchen:
- Verzichte auf die explizite Angabe von DB-Spalten.
- Wenn es sich nur um PDF-Dateien aus dem Medienpool handelt, dann füge die Medienpooltabelle $REX['TABLE_PREFIX'].'file' hinzu.
Das ist bei mir definitiv nicht so. "termine" findet nichts, während "Termine" mir die Suchergebnisse präsentiert. Woran erkenne ich denn einen binären Datenbanktyp? Meine Datenbank hast du ja schon mal kennengelerntXong hat geschrieben:Es wird generell nicht zwischen Groß- und Kleinschreibung unterschieden, solange keine binären Datenbanktypen verwendet werden. Eine Suche nach "begriff" findet grundsätzlich auch "BEGRIFF", "Begriff", "bEgRiFf", etc.
Nochmal damit das klar wird: Gibst du DB-Spalten explizit an, dann werden nur diese durchsucht. Sind keine angegeben, dann wird alles durchsucht.alexplus hat geschrieben:Wird dann auch der PDF-Inhalt durchsucht? Wenn ich die explizite Angabe entferne, hat er sie bei mir nicht mehr durchsucht. Aber ich begebe mich nochmals auf Fehlersuche.Xong hat geschrieben: Du hast zwei Möglichkeiten, um auch PDF-Dateien zu durchsuchen:
- Verzichte auf die explizite Angabe von DB-Spalten.
- Wenn es sich nur um PDF-Dateien aus dem Medienpool handelt, dann füge die Medienpooltabelle $REX['TABLE_PREFIX'].'file' hinzu.
Wenn PDF-Dateien nicht durchsucht werden, dann gibt´s da natürlich wieder mehrere Fehlerquellen. XSearch könnte noch einen Bug haben oder die Indexierung könnte bei den PDF-Dateien fehlgeschlagen sein. Die eingesetzte PDF-Parser-Klasse ist von mir selbst entwickelt worden und findet zu meinem Leidwesen auch nicht alle Inhalte aus allen PDF-Versionen. Dafür müsstest du auf dem Server das Programm pdf2text von XPDF installieren. Wenn die Inhalte aber in der Datenbank sind, dann müssten sie auch gefunden werden.
Eventuell liegt das Problem hier auch beim Suchmodul. Wenn die Dateien z. B. eine Dateiendung "PDF" (also Großbuchstaben) haben, dann schließt das Modul diese Dateien von den Ergebnissen aus.
Sehr ungewöhnlich. Kannst du mir Zugang zu Redaxo und DB geben?alexplus hat geschrieben:Das ist bei mir definitiv nicht so. "termine" findet nichts, während "Termine" mir die Suchergebnisse präsentiert.
BINARY, VARBINARY und BLOB sind binäre Datentypen. Aber die wirst du vermutlich nicht verwenden.alexplus hat geschrieben:Woran erkenne ich denn einen binären Datenbanktyp?
Ich kann mich zwar daran erinnern, aber die Datenbank habe ich echt nicht mehr im Kopf. Wenn du wüsstest, wieviel Datenbanken ich in den letzten Monaten bestaunen durfte...alexplus hat geschrieben:Meine Datenbank hast du ja schon mal kennengelernt
-
- Beiträge: 24
- Registriert: 25. Jun 2010, 11:19
Hallo Leute,
tolles Addon hab nur leider ein paar probleme,
und läuft die automatische indexierung nicht richtig z.B. etwas aktualisieren funkioniert aber wenn ich einen artikel lösche melded er objekt ist null oder offline stelle zeigt er immer noch das such ergebnis an.
bitte helft mir oder verweist mich auf den entsprechenden eintrag
danke sehr
tolles Addon hab nur leider ein paar probleme,
und läuft die automatische indexierung nicht richtig z.B. etwas aktualisieren funkioniert aber wenn ich einen artikel lösche melded er objekt ist null oder offline stelle zeigt er immer noch das such ergebnis an.
bitte helft mir oder verweist mich auf den entsprechenden eintrag
danke sehr
- Peter.Bickel
- Beiträge: 1856
- Registriert: 25. Jan 2005, 21:17
- Wohnort: Schleswig-Holstein
- Kontaktdaten: Website
Hallo Robert,
tut mir leid, falls meine Frage hier schon mal erklärt wurde ...
Hast Du einen Tipp, wie man Deine Suche so ausweiten müssten, damit sie auch Seiten findet, die Daten per SQL aus der Datenbank holt?
Beispiel: Ich habe eine Seite, wo News ausgegeben werden, die in einer eigenen Tabelle lliegen. Die News werden mit einer SQL-Abfrage ausglesen, allerdings nur xx pro Seite. Eine selbst programmierte Paginierung steuert via Get-Parameter die Links zu den weiteren "virtuellen" Seiten.
Bin im Moment grade ratlos, wie man sowas über Dein Such-AddOn erfassen kann.
Danke im Voraus,
Peter.
tut mir leid, falls meine Frage hier schon mal erklärt wurde ...
Hast Du einen Tipp, wie man Deine Suche so ausweiten müssten, damit sie auch Seiten findet, die Daten per SQL aus der Datenbank holt?
Beispiel: Ich habe eine Seite, wo News ausgegeben werden, die in einer eigenen Tabelle lliegen. Die News werden mit einer SQL-Abfrage ausglesen, allerdings nur xx pro Seite. Eine selbst programmierte Paginierung steuert via Get-Parameter die Links zu den weiteren "virtuellen" Seiten.
Bin im Moment grade ratlos, wie man sowas über Dein Such-AddOn erfassen kann.
Danke im Voraus,
Peter.
Doch, genau das war der Fall Alles in BLOB. Nicht, dass das von mir beabsichtigt gewesen wäreXong hat geschrieben: BINARY, VARBINARY und BLOB sind binäre Datentypen. Aber die wirst du vermutlich nicht verwenden.
Mit deinem Hinweis hab ich mich gleich auf die Suche nach der Lösung begeben, die ich dann auch unter http://dev.mysql.com/doc/refman/5.1/de/alter-table.html gefunden habe:
Code: Alles auswählen
ALTER TABLE Tabellenname CONVERT TO CHARACTER SET utf8
Tausend und einen Dank!
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Hallo Peter und Thomas!
Deinen Post habe ich vollkommen übersehen, Peter. Sorry dafür.
Das bedeutet, wenn du XSearch neu- bzw. reinstallierst und die Indexierung neu startest, dann bekommst du im Feld "fid" auch die richtige(n) ID(s). Wenn du einen Clustered Primary Key benutzt, dann ist das ein Array aller IDs, ansonsten ein Skalar.
Ich konnte jetzt natürlich noch nicht ausgiebig testen, allerdings sind die Änderungen nicht kritisch.
Theoretisch müsste es ausreichen, diese Version nur zu reinstallieren. Dann wird die Db-Spalte "fid" automatisch geändert. Datenverlust dürfte keiner auftreten. Eine Sicherung empfehle ich euch natürlich trotzdem. =)
Wenn die DB-Tabellen noch nicht auf UTF-8 eingestellt sind und ihr UTF-8 verwendet, dann empfehle ich eine Neuinstallation.
Wenn´s Probleme gibt, einfach melden.
Deinen Post habe ich vollkommen übersehen, Peter. Sorry dafür.
Das geht nicht direkt, sondern nur über den Umweg der Indexierung der Datenbankspalten.Peter.Bickel hat geschrieben:Hast Du einen Tipp, wie man Deine Suche so ausweiten müssten, damit sie auch Seiten findet, die Daten per SQL aus der Datenbank holt?
Du müsstest also alle für die News relevanten DB-Spalten indexieren und das Suchmodul entsprechend anpassen, dass aus der "fid" (Fremd-/Foreign-ID) den Link bastelt, der auf die entsprechende Newsseite zeigt. Eventuell ist es dafür nötig, die neue Version 0.6 zu verwenden.Peter.Bickel hat geschrieben:Beispiel: Ich habe eine Seite, wo News ausgegeben werden, die in einer eigenen Tabelle lliegen. Die News werden mit einer SQL-Abfrage ausglesen, allerdings nur xx pro Seite. Eine selbst programmierte Paginierung steuert via Get-Parameter die Links zu den weiteren "virtuellen" Seiten.
Das ist noch ein Problem in Xsearch gewesen. Ich habe deine Anfrage gleich mal zum Anlass genommen, XSearch dezent zu überarbeiten:Thomas.Blum hat geschrieben:Ich lasse bestimmte Spalten eines Addons mit indexieren. Bekomme aber als fid eine negative ID und nicht die ID des Datensatzen geliefert.
Wie schafft man Abhilfe um von der Ergbnissseite zur Artikelseite der Ausgabe zu gelangen?
Code: Alles auswählen
+ Datenbankfeld "fid" vom Typ INT zum Typ VARCHAR(255)
geändert
+ DEFAULT CHARSET der DB-Tabellen in "utf8" geändert
+ Funktionen json_encode und json_decode für PHP < 5.2
hinzugefügt
+ Bei der Datenbankspalten-Indexierung wird das ID-Feld
automatisch ermittelt und und der Wert in die DB-Spalte
"fid" eingetragen
+ Unterstützung für Clustered Primary Keys für das Feld
fid hinzugefügt, bei zusammengesetzten Primary Keys
werden diese JSON-kodiert abgespeichert
+ Es können nicht mehr nur Text-, Char- und Varchar-
Spalten, sondern DB-Spalten jeden Typs indexiert werden
+ Update-Möglichkeit von XSearch 0.5.4 auf 0.6 durch
reinstallieren (ohne Datenverlust)
+ JS-Nachfrage, ob schrittweise Indexierung wirklich
gestartet werden soll, hinzugefügt
Ich konnte jetzt natürlich noch nicht ausgiebig testen, allerdings sind die Änderungen nicht kritisch.
Theoretisch müsste es ausreichen, diese Version nur zu reinstallieren. Dann wird die Db-Spalte "fid" automatisch geändert. Datenverlust dürfte keiner auftreten. Eine Sicherung empfehle ich euch natürlich trotzdem. =)
Wenn die DB-Tabellen noch nicht auf UTF-8 eingestellt sind und ihr UTF-8 verwendet, dann empfehle ich eine Neuinstallation.
Wenn´s Probleme gibt, einfach melden.
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Hej,
kleiner Fehler.
unter "Erscheinungsbild des Highlight-Texts" im Start-Tag könnte man eine CSS-Klasse angeben
Würde so aussehen.
XSearch notiert dies so
was falsch ist.
PS: Hat jemand ein funktionierende highlighter Variante?
vg Thomas
kleiner Fehler.
unter "Erscheinungsbild des Highlight-Texts" im Start-Tag könnte man eine CSS-Klasse angeben
Würde so aussehen.
Code: Alles auswählen
<span class="search-highlight">
Code: Alles auswählen
<span class=\"search-highlight\">
PS: Hat jemand ein funktionierende highlighter Variante?
vg Thomas
Danke, Fehler behoben. Ursache ist ein Bug in der PHP-Funktion unserialize().Thomas.Blum hat geschrieben:unter "Erscheinungsbild des Highlight-Texts" im Start-Tag könnte man eine CSS-Klasse angeben
Würde so aussehen.XSearch notiert dies soCode: Alles auswählen
<span class="search-highlight">
was falsch ist.Code: Alles auswählen
<span class="search-highlight">
Meinst du damit noch was anderes oder hat sich das damit erledigt?Thomas.Blum hat geschrieben:PS: Hat jemand ein funktionierende highlighter Variante?
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Es gibt ein highlighter Plugin, was das Suchwort auf den eigentlichen Artikeln optisch hervorhebt. Ist recht nützlich. Nur ersetzt das Plugin nicht nur reinen text sondern auch Wörter die <a>, <img> usw vorkommen.Xong hat geschrieben:Meinst du damit noch was anderes oder hat sich das damit erledigt?Thomas.Blum hat geschrieben:PS: Hat jemand ein funktionierende highlighter Variante?
Bspl.
Code: Alles auswählen
<im src="" title="suchwort" />
Code: Alles auswählen
<im src="" title="<span class="highlight">suchwort</span>" />
vg Thomas
Hi Thomas!
Ich habe die Funktion a685_getHighlightedText() des Highlighters von Timo angepasst. So ist sie wesentlich schneller und ersetzt nur Wörter außerhalb von HTML-Tags (also alles, was nicht zwischen "<" und ">" liegt):
Ich habe die Funktion a685_getHighlightedText() des Highlighters von Timo angepasst. So ist sie wesentlich schneller und ersetzt nur Wörter außerhalb von HTML-Tags (also alles, was nicht zwischen "<" und ">" liegt):
Code: Alles auswählen
function a685_getHighlightedText($_subject, $_searchString, $_tags)
{
preg_match_all('~(?:(\+*)"([^"]*)")|(?:(\+*)(\S+))~is', $_searchString, $matches, PREG_SET_ORDER);
$searchterms = array();
foreach($matches as $match)
{
if(count($match) == 5)
// words without double quotes (foo)
$word = $match[4];
elseif(!empty($match[2]))
// words with double quotes ("foo bar")
$word = $match[2];
else
continue;
$searchterms[] = preg_quote($word, '~');
}
return preg_replace('~(?<!\<)('.implode('|', $searchterms).')(?![^<]*\>)~ims', $_tags[0].'$1'.$_tags[1], $_subject);
}
Zuletzt geändert von Xong am 16. Sep 2010, 23:39, insgesamt 1-mal geändert.
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Mir ist aufgefallen, dass der Name XSearch eine eingetragene Marke ist. Deshalb heißt das Addon ab sofort RexSearch.
Die letzten Änderungen:
Wichtigste Neuerung ist die neue Verfügbarkeit von zusätzlichen Daten in den Suchergebnissen. Wenn Datenbankspalten indexiert werden, so stehen bei einem Suchergebnis alle Werte des Datensatzes zur Verfügung, solange diese Daten aus weiteren ausgewählten Spalten der Datenbanktabelle kommen.
Beispiel:
In den RexSearch-Einstellungen wurden die Datenbankspalten `rex_article`.`name`, `rex_article`.`art_description` und `rex_article`.`art_keywords` ausgewählt.
Wenn nun eine Suche ein Ergebnis beispielsweise in der Spalte name findet, dann stehen bei diesem Suchergebnis auch die beiden Werte aus den Spalten art_description und art_keywords zur Verfügung.
Bei Fragen fragen. =)
Die letzten Änderungen:
Code: Alles auswählen
Version 0.6.1 (2010-10-04)
+ Datenbankfeld "values" hinzugfügt,
indexierte Spalten einer Datenbanktabelle werden in dieses Feld
ein getragen und stehen bei der Ausgabe der Suchergebnisse zur
Verfügung
+ automatische Indexierung optimiert (a587_handle_extensionpoint)
Version 0.7 (2010-10-06)
+ Name des Addons in RexSearch geändert
Beispiel:
In den RexSearch-Einstellungen wurden die Datenbankspalten `rex_article`.`name`, `rex_article`.`art_description` und `rex_article`.`art_keywords` ausgewählt.
Wenn nun eine Suche ein Ergebnis beispielsweise in der Spalte name findet, dann stehen bei diesem Suchergebnis auch die beiden Werte aus den Spalten art_description und art_keywords zur Verfügung.
Bei Fragen fragen. =)