Hallo zusammen,
ich habe aktuell das Problem, dass RexSearch den Suchindex nicht automatisch aktualisiert. Neue Inhalte werden nur über die manuelle Neu-Indexierung erfasst.
REDAXO- bzw. Serverdaten:
REDAXO: 4.3.3
RexSearch: aktuellste Version (meine ich)
PHP: 5.3.10
MySQL: 5.5.22
Kann mir bei diesem Problem jemand helfen oder gibt es gar schon eine Lösung?
Ich danke schon mal im Voraus!
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/
-
- Beiträge: 74
- Registriert: 24. Nov 2008, 18:27
- Wohnort: Steinheim
Re: Addon RexSearch (Fulltext-Search-Addon)
Viele Grüße
Markus
Markus
Re: Addon RexSearch (Fulltext-Search-Addon)
Oh, das würde mich auch interessieren, da das meiner Beobachtung nach nicht immer richtig klappt bei Datenbankeinträgen. Wie ist denn der Indexierungsvorgang aktuell gelöst?elricco hat geschrieben:Hallo Xong,
sag mal gibt es eigentlich einen Cronjob für das RexSearch zur Neu-Indexierung?
Ich habe gerade das "Problem" das wir einen Internetauftritt betreuen, bei dem sich das Sortiment täglich ändert und somit der Suchindex sich mitverändert.
Vielen Dank fürs Lesen
Gruß Tim
Viele Grüße
cukabeka
cukabeka
Kein Suchergebnis - bin am verzweifeln ;-(
Hallo,
ich bin am Verzweifeln. Ich bekomme einfach keine Suchergebnisse. Ich habe schon mehrere Installationen vorgenommen, mich durch alle (!) Forenbeiträge gelesen aber ich bekomme es einfach nicht hin. Auch das Video-Tutorial von “rexvideo” hat mir nicht geholfen.
Es wir kein Ergebnis angezeigt. Lediglich der Text “Leider nichts gefunden”.
Ich muss irgendetwas grundsätzlich falsch machen ;-((
Vielleicht erbarmt sich ein freundliches Forenmitglied und hilft mir auf die Sprünge.
Hier die Daten:
Die Entwicklung der Seite ist lokal.
Version
REDAXO: 4.3.2
PHP: 5.2.5
Datenbank
MySQL: 5.0.41
Name: deja_redaxo_4_3_2
Host: localhost
_
Base href ist im Header eingetragen!
Suchtemplate aus dem WiKi:
[code] <form id="rexsearch_form" action="index.php" method="get">
<fieldset><legend>Suche</legend>
<input type="hidden" name="article_id" value="13" />
<input type="hidden" name="clang" value="REX_CLANG_ID" />
<input type="text" name="rexsearch" value="<?php if(!empty($_GET['rexsearch'])) echo htmlspecialchars($_GET['rexsearch']); ?>" />
</fieldset>
</form>[/code]
Das Suchformular ist im Template in der mittleren von 3 Spalten eingefügt.
__
Ausgabe Modul aus dem WiKi “Ähnlichkeitssuche“
[code]<?php
define('SHOWMAX',10);
if(!empty($_REQUEST['rexsearch']))
{
$rexsearch = new RexSearch();
$rexsearch->setLimit(array($start = isset($_GET['start'])?intval($_GET['start']):0, SHOWMAX));
$result = $rexsearch->search($_REQUEST['rexsearch']);
if(count($result['simwords']) > 0)
{
$newsearchString = $result['simwordsnewsearch'];
$result = $rexsearch->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)
{
if($hit['type'] == 'db_column')
{
$text = $hit['article_teaser'];
if($hit['table'] == $REX['TABLE_PREFIX'].'article')
$hit['fid'] = $hit['values']['id'];
}
else
{
$text = $hit['highlightedtext'];
}
$article = OOArticle::getArticleById($hit['fid']);
echo '<li>
<h4><a href="'.($url = 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('rexsearch' => $_REQUEST['rexsearch'], 'start' => $i*SHOWMAX)).'">'.($i+1).'</a></li>';
}
echo '</ul>';
}
}
else
{
echo '<em>Leider nichts gefunden.</em>';
}
}
?>
[/code]
Das Ergebnis-Modul ist auf der Seite mit der ID 13 in der mittleren Spalte eingesetzt.
In der Datenbank sind die Spalten “rex_587_keywords“ etc. gefüllt.
Ich habe keine URL-AdOns installiert.
__
Ich weis einfach nicht weiter wo ich noch ansetzen könnte.
Hoffentlich hat jemand von Euch einen Tipp für mich.
ich bin am Verzweifeln. Ich bekomme einfach keine Suchergebnisse. Ich habe schon mehrere Installationen vorgenommen, mich durch alle (!) Forenbeiträge gelesen aber ich bekomme es einfach nicht hin. Auch das Video-Tutorial von “rexvideo” hat mir nicht geholfen.
Es wir kein Ergebnis angezeigt. Lediglich der Text “Leider nichts gefunden”.
Ich muss irgendetwas grundsätzlich falsch machen ;-((
Vielleicht erbarmt sich ein freundliches Forenmitglied und hilft mir auf die Sprünge.
Hier die Daten:
Die Entwicklung der Seite ist lokal.
Version
REDAXO: 4.3.2
PHP: 5.2.5
Datenbank
MySQL: 5.0.41
Name: deja_redaxo_4_3_2
Host: localhost
_
Base href ist im Header eingetragen!
Suchtemplate aus dem WiKi:
[code] <form id="rexsearch_form" action="index.php" method="get">
<fieldset><legend>Suche</legend>
<input type="hidden" name="article_id" value="13" />
<input type="hidden" name="clang" value="REX_CLANG_ID" />
<input type="text" name="rexsearch" value="<?php if(!empty($_GET['rexsearch'])) echo htmlspecialchars($_GET['rexsearch']); ?>" />
</fieldset>
</form>[/code]
Das Suchformular ist im Template in der mittleren von 3 Spalten eingefügt.
__
Ausgabe Modul aus dem WiKi “Ähnlichkeitssuche“
[code]<?php
define('SHOWMAX',10);
if(!empty($_REQUEST['rexsearch']))
{
$rexsearch = new RexSearch();
$rexsearch->setLimit(array($start = isset($_GET['start'])?intval($_GET['start']):0, SHOWMAX));
$result = $rexsearch->search($_REQUEST['rexsearch']);
if(count($result['simwords']) > 0)
{
$newsearchString = $result['simwordsnewsearch'];
$result = $rexsearch->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)
{
if($hit['type'] == 'db_column')
{
$text = $hit['article_teaser'];
if($hit['table'] == $REX['TABLE_PREFIX'].'article')
$hit['fid'] = $hit['values']['id'];
}
else
{
$text = $hit['highlightedtext'];
}
$article = OOArticle::getArticleById($hit['fid']);
echo '<li>
<h4><a href="'.($url = 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('rexsearch' => $_REQUEST['rexsearch'], 'start' => $i*SHOWMAX)).'">'.($i+1).'</a></li>';
}
echo '</ul>';
}
}
else
{
echo '<em>Leider nichts gefunden.</em>';
}
}
?>
[/code]
Das Ergebnis-Modul ist auf der Seite mit der ID 13 in der mittleren Spalte eingesetzt.
In der Datenbank sind die Spalten “rex_587_keywords“ etc. gefüllt.
Ich habe keine URL-AdOns installiert.
__
Ich weis einfach nicht weiter wo ich noch ansetzen könnte.
Hoffentlich hat jemand von Euch einen Tipp für mich.
Mit freundlichen Grüßen,
-silvio-
-silvio-
Re: Addon RexSearch (Fulltext-Search-Addon)
HI,
Könnte evtl daran liegen... bzw. teste es doch einfach mal auf einem
LiveServer.
grz. Chris
ist die "mittlere Spalte" der Hauptbereich (ctype_id: 1)....ID 13 in der mittleren Spalte eingesetzt....
Könnte evtl daran liegen... bzw. teste es doch einfach mal auf einem
LiveServer.
grz. Chris
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo Darwin/Chris,
vielen Dank für Deine Antwort!
Ich habe die Suche nun online – und sie funktioniert )
Na gut “fast”. Ich bekomme bei einigen Suchanfragen einen “Fatal error”:
Fatal error: Call to a member function getUrl() on a non-object in /hp/bx/aa/nb/www/redaxo/include/classes/class.rex_article.inc.php(133) : eval()'d code on line 38
Dieser Fehler tritt auf, wenn nach Wörtern gesucht wird, die im Menü oder im Kategorienamen vorkommen.
Z.B.: “Kontakt” oder “Global”, etc.
Wenn ich die “Datenbankspalten in die Suche einschließen” abwähle, also keine Datenbankspalten einschließe kommt keine Fehlermeldung.
Aber das scheint mir alles nicht so dramatisch. Hauptsache die Suche funktioniert grundsätzlich!
Nochmal vielen lieben Dank für Deine Antwort und wenn Du einen Tipp zu den Datenbankspalten/der Fehlermeldung hast ...
vielen Dank für Deine Antwort!
Ich habe die Suche nun online – und sie funktioniert )
Na gut “fast”. Ich bekomme bei einigen Suchanfragen einen “Fatal error”:
Fatal error: Call to a member function getUrl() on a non-object in /hp/bx/aa/nb/www/redaxo/include/classes/class.rex_article.inc.php(133) : eval()'d code on line 38
Dieser Fehler tritt auf, wenn nach Wörtern gesucht wird, die im Menü oder im Kategorienamen vorkommen.
Z.B.: “Kontakt” oder “Global”, etc.
Wenn ich die “Datenbankspalten in die Suche einschließen” abwähle, also keine Datenbankspalten einschließe kommt keine Fehlermeldung.
Aber das scheint mir alles nicht so dramatisch. Hauptsache die Suche funktioniert grundsätzlich!
Nochmal vielen lieben Dank für Deine Antwort und wenn Du einen Tipp zu den Datenbankspalten/der Fehlermeldung hast ...
Mit freundlichen Grüßen,
-silvio-
-silvio-
Re: Addon RexSearch (Fulltext-Search-Addon)
Hi Silvio,
ich sichere, bevor ich eine getUrl-abfrage mache, vorher immer mit is_object ab:
ich sichere, bevor ich eine getUrl-abfrage mache, vorher immer mit is_object ab:
Code: Alles auswählen
if(is_object($article))
{
$article->getUrl();
$article->getId();
$article->getValue();
#etc
}
Viele Grüße
cukabeka
cukabeka
Re: Addon RexSearch (Fulltext-Search-Addon)
[quote]
Hi Silvio,
ich sichere, bevor ich eine getUrl-abfrage mache, vorher immer mit is_object ab:
[/quote]
Hallo cukabeka,
vielen Dank für Deine Antwort.
Leider bin ich keine php-Leuchte. Der Code soll bestimmt in das Ausgabe Modul (s. erster Beitrag).
Soll er den kompletten Code umschließen?
Also:
[code]
<?php
if(is_object($article))
{
define('SHOWMAX',10);
if(!empty($_REQUEST['rexsearch']))
{
$rexsearch = new RexSearch();
$rexsearch->setLimit(array($start = isset($_GET['start'])?intval($_GET['start']):0, SHOWMAX));
...
echo '<em>Leider nichts gefunden.</em>';
}
}
}
?>
[/code]
Und löst Dein Code mein Problem mit der Indexierung der Datenbankspalten?
Hi Silvio,
ich sichere, bevor ich eine getUrl-abfrage mache, vorher immer mit is_object ab:
[/quote]
Hallo cukabeka,
vielen Dank für Deine Antwort.
Leider bin ich keine php-Leuchte. Der Code soll bestimmt in das Ausgabe Modul (s. erster Beitrag).
Soll er den kompletten Code umschließen?
Also:
[code]
<?php
if(is_object($article))
{
define('SHOWMAX',10);
if(!empty($_REQUEST['rexsearch']))
{
$rexsearch = new RexSearch();
$rexsearch->setLimit(array($start = isset($_GET['start'])?intval($_GET['start']):0, SHOWMAX));
...
echo '<em>Leider nichts gefunden.</em>';
}
}
}
?>
[/code]
Und löst Dein Code mein Problem mit der Indexierung der Datenbankspalten?
Mit freundlichen Grüßen,
-silvio-
-silvio-
Re: Addon RexSearch (Fulltext-Search-Addon)
nein, das muss um diesen Teil hier herum:
ob's hilft, kann ich dir nicht sagen, probier's aus
Code: Alles auswählen
if(is_object($article))
{
echo '<li>
<h4><a href="'.($url = 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>';
Viele Grüße
cukabeka
cukabeka
Re: Addon RexSearch (Fulltext-Search-Addon)
[quote]ob's hilft, kann ich dir nicht sagen, probier's aus[/quote]
Nein hat leider nicht wirklich geholfen. Die Fehlermeldung erscheint zwar nicht mehr aber Ergebnisse aus den Spalten werden nicht angezeigt. Es erschein auch keinText "Leider nichts gefunden".
Auf jeden Fall vielen Dank für Deine Hilfe!!!
Nein hat leider nicht wirklich geholfen. Die Fehlermeldung erscheint zwar nicht mehr aber Ergebnisse aus den Spalten werden nicht angezeigt. Es erschein auch keinText "Leider nichts gefunden".
Auf jeden Fall vielen Dank für Deine Hilfe!!!
Mit freundlichen Grüßen,
-silvio-
-silvio-
Re: Addon RexSearch (Fulltext-Search-Addon)
nun, du hast ja weiter oben im code gesagt, dass er die hits nehmen soll, die "db_column" sind. dann macht das hier natürlich erstmal keinen sinn:
$article = OOArticle::getArticleById($hit['fid']);
dort wird versucht, artikel zu finden, die gar keine sein können, weil hit[fid] ja auf jeden fall ein ergebnis aus der datenbank ist, kein artikel.
schreib mal statt
das hier:
dann sollte etwas dabei rauskommen.
$article = OOArticle::getArticleById($hit['fid']);
dort wird versucht, artikel zu finden, die gar keine sein können, weil hit[fid] ja auf jeden fall ein ergebnis aus der datenbank ist, kein artikel.
schreib mal statt
Code: Alles auswählen
if(is_object($article))
{
echo '<li>
<h4><a href="'.($url = 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>';
Code: Alles auswählen
if($hit['fid'])
{
var_dump($hit['fid']);
}
Viele Grüße
cukabeka
cukabeka
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo cukabeka,
ich fürchte ich bin noch immer zu blöd Deine Codeschnippsel zu integrieren ;-(
Vielen Dank für Deine Mühe aber ich lasse besser die Finger davon und höre auf Deine Zeit zu verschwenden. Das ist ja schon peinlich.
Danke für Deinen Bemühungen!!!
ich fürchte ich bin noch immer zu blöd Deine Codeschnippsel zu integrieren ;-(
Vielen Dank für Deine Mühe aber ich lasse besser die Finger davon und höre auf Deine Zeit zu verschwenden. Das ist ja schon peinlich.
Danke für Deinen Bemühungen!!!
Mit freundlichen Grüßen,
-silvio-
-silvio-
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo Xong,
ist es möglich ohne größere Probleme in der Tabelle 'rex_587_searchindex' den Datentyp der Spalten 'plaintext' und 'unchangedtext' von 'text' auf 'mediumtext' zu ändern? Wir haben das Problem, dass auf der Homepage eines Kunden auf einer Seite über einen Webservice große Mengen an Inhalt eingebunden werden und diese Seite dann mehr als 65.535 Zeichen enthält. Da wir den Cache indizieren wird der Inhalt der Seite bei der Indizierung dann entsprechend abgeschnitten und der Rest dann ergo nicht gefunden.
Grüße
zerokom
ist es möglich ohne größere Probleme in der Tabelle 'rex_587_searchindex' den Datentyp der Spalten 'plaintext' und 'unchangedtext' von 'text' auf 'mediumtext' zu ändern? Wir haben das Problem, dass auf der Homepage eines Kunden auf einer Seite über einen Webservice große Mengen an Inhalt eingebunden werden und diese Seite dann mehr als 65.535 Zeichen enthält. Da wir den Cache indizieren wird der Inhalt der Seite bei der Indizierung dann entsprechend abgeschnitten und der Rest dann ergo nicht gefunden.
Grüße
zerokom
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo,
ich benötige eine Suche die nur in einer festgelegten Kategorie sucht und deren Artikel die Meta-Info art_news="2" erfüllen.
Die Kategorie kann ich ja über $rexsearch->searchInCategories(array(53)); festlegen, wie mache ich das mit der Meta-Angabe?
Wäre toll, wenn Ihr da einen Tipp hättet. Danke schon mal.
ich benötige eine Suche die nur in einer festgelegten Kategorie sucht und deren Artikel die Meta-Info art_news="2" erfüllen.
Die Kategorie kann ich ja über $rexsearch->searchInCategories(array(53)); festlegen, wie mache ich das mit der Meta-Angabe?
Wäre toll, wenn Ihr da einen Tipp hättet. Danke schon mal.
Re: Addon RexSearch (Fulltext-Search-Addon)
Indexiere die DB-Spalte art_news mit und erweitere deinen Code um den Aufruf der Methode "setWhere":netmanix hat geschrieben:Hallo,
ich benötige eine Suche die nur in einer festgelegten Kategorie sucht und deren Artikel die Meta-Info art_news="2" erfüllen.
Die Kategorie kann ich ja über $rexsearch->searchInCategories(array(53)); festlegen, wie mache ich das mit der Meta-Angabe?
Code: Alles auswählen
$rexsearch->setWhere("`values` LIKE '%s:8:\"art_news\";s:1:\"2\"%'");
Re: Addon RexSearch (Fulltext-Search-Addon)
Das gibt gar keine Probleme. Ich habe in der Entwicklerversion gleich den Datentyp "longtext" verwendet.zerokom hat geschrieben:Hallo Xong,
ist es möglich ohne größere Probleme in der Tabelle 'rex_587_searchindex' den Datentyp der Spalten 'plaintext' und 'unchangedtext' von 'text' auf 'mediumtext' zu ändern? Wir haben das Problem, dass auf der Homepage eines Kunden auf einer Seite über einen Webservice große Mengen an Inhalt eingebunden werden und diese Seite dann mehr als 65.535 Zeichen enthält. Da wir den Cache indizieren wird der Inhalt der Seite bei der Indizierung dann entsprechend abgeschnitten und der Rest dann ergo nicht gefunden.
Automatisches Aktualisieren des Suchindex´
Zum Thema "Automatisches Aktualisieren des Suchindex´":
Ich werde heute noch ein Reindex-Plugin hochladen, das nach Aktivierung im Backend die Indexierung von Datensätzen, die über XForm- oder rex_form-Formulare geändert werden, automatisch übernimmt.
Das funktioniert also prinzipiell bei allen Add-/Editier-Formularen des Tablemanagers von XForm, sowie immer dann, wenn ihr in euren Addons die Klassen rex_form oder rex_xform für die Erstellung eurer Formulare verwendet habt.
Um Datensätze, die anderweitig neu eingespielt oder aktualisiert werden, auch im Suchindex auf dem neuesten Stand zu halten, müsste ihr selbst ans Werk. Orientieren könnt ihr euch da beim Reindex-Plugin, das wirklich sehr klein ist und leicht verständlich sein sollte.
Bei Fragen fragen. =)
Ich werde heute noch ein Reindex-Plugin hochladen, das nach Aktivierung im Backend die Indexierung von Datensätzen, die über XForm- oder rex_form-Formulare geändert werden, automatisch übernimmt.
Das funktioniert also prinzipiell bei allen Add-/Editier-Formularen des Tablemanagers von XForm, sowie immer dann, wenn ihr in euren Addons die Klassen rex_form oder rex_xform für die Erstellung eurer Formulare verwendet habt.
Um Datensätze, die anderweitig neu eingespielt oder aktualisiert werden, auch im Suchindex auf dem neuesten Stand zu halten, müsste ihr selbst ans Werk. Orientieren könnt ihr euch da beim Reindex-Plugin, das wirklich sehr klein ist und leicht verständlich sein sollte.
Bei Fragen fragen. =)
Zuletzt geändert von Xong am 13. Sep 2012, 12:12, insgesamt 1-mal geändert.
-
- Beiträge: 146
- Registriert: 21. Mai 2007, 09:18
- Kontaktdaten: ICQ Website
Artikelgewichtung Gruppierung Cronjob Artikel-Index
Ist es möglich bestimmte Artikel bei der Suche,
generell höher zu gewichten?
Etwa durch eine Einstellung in den Metadaten?
Weiter wäre es noch interessant Suchbegriffe zu gruppieren.
Zum Beispiel nach übergeordneter Kategorie.
Gibt es inzwischen einen Cronjob für die automatische Artikelindizierung?
generell höher zu gewichten?
Etwa durch eine Einstellung in den Metadaten?
Weiter wäre es noch interessant Suchbegriffe zu gruppieren.
Zum Beispiel nach übergeordneter Kategorie.
Gibt es inzwischen einen Cronjob für die automatische Artikelindizierung?
Re: Artikelgewichtung Gruppierung Cronjob Artikel-Index
Hi!
Es gibt seit kurzem das Plugin "reindex", das bei der Aktualisierung des Index bei Datenbankspalten ganz gute Dienste verrichtet: http://www.redaxo.org/de/forum/post101362.html#p101362
Wenn du Hilfe beim Suchmodul brauchst, meld dich einfach nochmal, aber das dürfte recht einfach zu erweitern sein.
Die jeweils aktuelle Version von RexSearch findest du übrigens immer bei github.com.
Wenn du bestimmte Artikel, DB-Spalten oder Dateien mit unterschiedlicher Relevanz ausstatten möchtest, musst du das über das Suchmodul machen. Sowas wurde zwar schon bei bestimmten Projekten umgesetzt, allerdings hab ich das bisher immer individuell gelöst.simonsinus hat geschrieben:Ist es möglich bestimmte Artikel bei der Suche,
generell höher zu gewichten?
Etwa durch eine Einstellung in den Metadaten?
Auch Gruppierungen sind eher im Suchmodul zu erreichen.simonsinus hat geschrieben:Weiter wäre es noch interessant Suchbegriffe zu gruppieren.
Zum Beispiel nach übergeordneter Kategorie.
Nein, und den wird es auch nie geben (können). Die vollständige Indexierung dauert einfach viel zu lang, als dass sie als Cronjob umgesetzt werden könnte. Und Artikel werden bei einer Änderung (Add, Edit, Delete) ja schon automatisch reindexiert, wenn du das in den Einstellungen eingestellt hast.simonsinus hat geschrieben:Gibt es inzwischen einen Cronjob für die automatische Artikelindizierung?
Es gibt seit kurzem das Plugin "reindex", das bei der Aktualisierung des Index bei Datenbankspalten ganz gute Dienste verrichtet: http://www.redaxo.org/de/forum/post101362.html#p101362
Wenn du Hilfe beim Suchmodul brauchst, meld dich einfach nochmal, aber das dürfte recht einfach zu erweitern sein.
Die jeweils aktuelle Version von RexSearch findest du übrigens immer bei github.com.
Volltextsuche über zwei Datenbanken möglich?
Hallo Xong,
ich habe eine geteilte Webseite (zwei Domains), die sich jede mit einem eigenen Inhaltsschwerpunkt beschäftigen. Dennoch gibt es Abfragen, die Artikel aus beiden Seiten in Listen generieren sollen.
Beide Webseiten haben eigene DBs. Eine Abfrage über beide DBs konnte ich realisieren, indem ich die zweite DB in der master.inc.php eintrage und dann eben eine zweite SELECT-Abfrage mit rex_sql(2) initialisiere. Soweit funktioniert das auch.
Eine Volltextsuche mit rexSearch 8.0 ist in Betrieb und läuft über die eine Webseite.
Jetzt möchte ich aber die Volltextsuche über beide DBs realisieren und da stehe ich auf dem Schlauch. Wie würdest du hier vorgehen? An welcher Stelle kann ich die andere DB abfragen und wie bekomme ich in den Ergebnissen die Verweise auf die korrekte DB hin, so dass ich die Artikel mit Pfad und korrekter URL bekomme?
Bin mit MySql nicht sehr fit, aber neugierig;–)
Danke und Grüße
Heinz Haese
ich habe eine geteilte Webseite (zwei Domains), die sich jede mit einem eigenen Inhaltsschwerpunkt beschäftigen. Dennoch gibt es Abfragen, die Artikel aus beiden Seiten in Listen generieren sollen.
Beide Webseiten haben eigene DBs. Eine Abfrage über beide DBs konnte ich realisieren, indem ich die zweite DB in der master.inc.php eintrage und dann eben eine zweite SELECT-Abfrage mit rex_sql(2) initialisiere. Soweit funktioniert das auch.
Eine Volltextsuche mit rexSearch 8.0 ist in Betrieb und läuft über die eine Webseite.
Jetzt möchte ich aber die Volltextsuche über beide DBs realisieren und da stehe ich auf dem Schlauch. Wie würdest du hier vorgehen? An welcher Stelle kann ich die andere DB abfragen und wie bekomme ich in den Ergebnissen die Verweise auf die korrekte DB hin, so dass ich die Artikel mit Pfad und korrekter URL bekomme?
Bin mit MySql nicht sehr fit, aber neugierig;–)
Danke und Grüße
Heinz Haese
Re: Volltextsuche über zwei Datenbanken möglich?
Hallo Heinz!
Angepasst werden muss also der ganze Prozess der schrittweisen Indexierung, sowie die Auswahl der Datenbankspalten und die Methoden der Klasse RexSearch, die für die Indexierung der Artikel und Spalten zuständig sind.
Der Aufwand ist definitiv zu hoch, um das (kostenlos) umzusetzen, weil ich nicht glaube, dass das häufiger gebraucht wird.
Die Frage für mich ist, warum du zwei Datenbanken verwendest und wie die Struktur der zweiten Datenbank aussieht. Ich nehme an, DB 1 enthält die Redaxo-Tabellen. Welche Tabellen sollen da noch in der zweiten DB stehen?
Zurecht, das ist im Moment nämlich einfach nicht möglich.erraiva hat geschrieben:Jetzt möchte ich aber die Volltextsuche über beide DBs realisieren und da stehe ich auf dem Schlauch.
Im Prinzip sind die Änderungen, die an RexSearch vorgenommen werden müssten, relativ einfach erklärt: Man muss nur die Indexierung der zweiten DB ermöglichen. Denn sobald die Daten im Suchindex liegen, läuft alles wie gehabt ab.erraiva hat geschrieben:Wie würdest du hier vorgehen? An welcher Stelle kann ich die andere DB abfragen und wie bekomme ich in den Ergebnissen die Verweise auf die korrekte DB hin, so dass ich die Artikel mit Pfad und korrekter URL bekomme?
Angepasst werden muss also der ganze Prozess der schrittweisen Indexierung, sowie die Auswahl der Datenbankspalten und die Methoden der Klasse RexSearch, die für die Indexierung der Artikel und Spalten zuständig sind.
Der Aufwand ist definitiv zu hoch, um das (kostenlos) umzusetzen, weil ich nicht glaube, dass das häufiger gebraucht wird.
Die Frage für mich ist, warum du zwei Datenbanken verwendest und wie die Struktur der zweiten Datenbank aussieht. Ich nehme an, DB 1 enthält die Redaxo-Tabellen. Welche Tabellen sollen da noch in der zweiten DB stehen?
Re: Volltextsuche über zwei Datenbanken möglich?
Hey Xong,
danke für die schnelle Antwort. Verstehe, dass das zu aufwändig wäre, wollte aber sichergehen, dass es nicht ein kleines Hebelchen gibt, was ich übersehen hätte;–)
Beide Webseiten sind ähnlich, beide Redaxo, gleiche Version (4.4.0), beide haben laufendes rexSearch.
Mein Lösungsansatz war zunächst, den rex_587_ Prefix zu ändern. Dann kann ich die DB mit den originalen Prefix-Tabellen der anderen DB ergänzen (siehe Anhang). Damit hätte ich also den Index beider Seiten zur Verfügung. Das wäre ok, weil die eine Webseite einen festen Inhalt hat und sich der Suchindex nicht erneuern muss.
Also könnte ich jetzt auf meiner Seite in beiden, rex_587_ und rex_588_ Tabellen suchen.
Aber ich weiß nicht, wie ich URLs für die beiden Seiten trennen kann. Welche Funktionen müsste ich anpassen um das hinzubekommen? Reicht es aus, in der class.rexsearch.inc.php zu ändern?
Es grüßt herzlich
Heinz
danke für die schnelle Antwort. Verstehe, dass das zu aufwändig wäre, wollte aber sichergehen, dass es nicht ein kleines Hebelchen gibt, was ich übersehen hätte;–)
Beide Webseiten sind ähnlich, beide Redaxo, gleiche Version (4.4.0), beide haben laufendes rexSearch.
Mein Lösungsansatz war zunächst, den rex_587_ Prefix zu ändern. Dann kann ich die DB mit den originalen Prefix-Tabellen der anderen DB ergänzen (siehe Anhang). Damit hätte ich also den Index beider Seiten zur Verfügung. Das wäre ok, weil die eine Webseite einen festen Inhalt hat und sich der Suchindex nicht erneuern muss.
Also könnte ich jetzt auf meiner Seite in beiden, rex_587_ und rex_588_ Tabellen suchen.
Aber ich weiß nicht, wie ich URLs für die beiden Seiten trennen kann. Welche Funktionen müsste ich anpassen um das hinzubekommen? Reicht es aus, in der class.rexsearch.inc.php zu ändern?
Es grüßt herzlich
Heinz
- Dateianhänge
-
- rexsearch.png (22.13 KiB) 17599 mal betrachtet
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo Heinz,
jetzt mal Klartext: Du hast zwei Redaxo-Installationen mit jeweils zwei Datenbanken, richtig?
Du hast also auch die Möglichkeit, für jede Redaxo-Installation einen separaten Suchindex zu erstellen?
Dann kannst du erst ganz normal das Suchergebnis der einen Installation abfragen und dann suchst du in der zweiten Datenbank:
jetzt mal Klartext: Du hast zwei Redaxo-Installationen mit jeweils zwei Datenbanken, richtig?
Du hast also auch die Möglichkeit, für jede Redaxo-Installation einen separaten Suchindex zu erstellen?
Dann kannst du erst ganz normal das Suchergebnis der einen Installation abfragen und dann suchst du in der zweiten Datenbank:
Code: Alles auswählen
$db_temp = $REX['DB']['1'];
$REX['DB']['1'] = $REX['DB']['2'];
$rs = new RexSearch();
$result = $rs->search($searchterm);
// ...
$REX['DB']['1'] = $db_temp;
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo,
was muss ich anpassen damit alle Artikel und Kategorien automatisch von der Suche ausgeschlossen werden, ohne das ich dies immer manuell anpassen muss, wenn ein neuer Artikel dazu kommt.
Es soll also nur in ausgewählten Datenbankspalten gesucht werden.
EDIT: Hat sich erledigt, habs herausgefunden
was muss ich anpassen damit alle Artikel und Kategorien automatisch von der Suche ausgeschlossen werden, ohne das ich dies immer manuell anpassen muss, wenn ein neuer Artikel dazu kommt.
Es soll also nur in ausgewählten Datenbankspalten gesucht werden.
EDIT: Hat sich erledigt, habs herausgefunden
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo,
und zwar funktioniert bei mir das mit dem reindex nicht.
Hab das Plugin aktiviert, aber wenn ich Daten über den Xform Table Manager aktualisiere wird kein reindex ausgeführt. Woran kann das liegen?
und zwar funktioniert bei mir das mit dem reindex nicht.
Hab das Plugin aktiviert, aber wenn ich Daten über den Xform Table Manager aktualisiere wird kein reindex ausgeführt. Woran kann das liegen?
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo,
ich habe einige Probleme mit dem RexSearch AddOn
Z.Zt. arbeite ich an einer viersprachigen Website (DE, EN, FR, ES). Dort gibt es je 3 Produktgruppen (Kategorien) und für jedes Produkt einen Artikel.
Auf jeder Seite wird eine Auflistung aller Artikel als UL angezeigt, egal ob on oder offline.
Damit die Suche nach einem Produkt nicht auf jeder Seite einen Treffer erzeugt, hat das umgebende Div in den Produktseiten die Klasse .artikel-index, auf der jeweiligen Startseite hat es die Klasse nicht. Es soll also nur die Artikel-Liste der jeweiligen Startseite durchsucht werden.
Ich habe nun schon alle Möglichkeiten von RexSearch zig mal ausprobiert, hunderte Male schrittweise indiziert (egal welche Art und Weise), Module geändert, Foren durchsucht etc. und noch keine Lösung für
folgende Probleme gefunden:
1. Deutsche Seite:
Wenn ich einen Produktname auf deutsch eingebe erhalte ich den Treffer auf der Startseite wie gewünscht, allerdings auch Treffer auf jede Produktseite die online ist, obwohl ich bei Plaintext die Klasse .artikel-index eingetragen habe. Bei den Treffern auf die Produktseiten wird aber gar kein Treffertext angezeigt sondern nur der Artikelname und die URL...
2. andersprachige Websites:
Hier erhalte ich überhaupt keine Treffer, wenn ich nach einem Produkt in der jeweiligen Sprache suche. Meine fremdsprachigen Artikel-Listen scheinen überhaupt nicht indiziert zu werden.
Ich hoffe ich habe das verständlich erklärt, ich kann gerne die URL der entsprechenden Website weitergeben.
Ich benötige dringend Hilfe, ich komme einfach nicht weiter!
Bei allen anderen Seiten scheint RexSearch gut zu funktionieren...
ich habe einige Probleme mit dem RexSearch AddOn
Z.Zt. arbeite ich an einer viersprachigen Website (DE, EN, FR, ES). Dort gibt es je 3 Produktgruppen (Kategorien) und für jedes Produkt einen Artikel.
Auf jeder Seite wird eine Auflistung aller Artikel als UL angezeigt, egal ob on oder offline.
Damit die Suche nach einem Produkt nicht auf jeder Seite einen Treffer erzeugt, hat das umgebende Div in den Produktseiten die Klasse .artikel-index, auf der jeweiligen Startseite hat es die Klasse nicht. Es soll also nur die Artikel-Liste der jeweiligen Startseite durchsucht werden.
Ich habe nun schon alle Möglichkeiten von RexSearch zig mal ausprobiert, hunderte Male schrittweise indiziert (egal welche Art und Weise), Module geändert, Foren durchsucht etc. und noch keine Lösung für
folgende Probleme gefunden:
1. Deutsche Seite:
Wenn ich einen Produktname auf deutsch eingebe erhalte ich den Treffer auf der Startseite wie gewünscht, allerdings auch Treffer auf jede Produktseite die online ist, obwohl ich bei Plaintext die Klasse .artikel-index eingetragen habe. Bei den Treffern auf die Produktseiten wird aber gar kein Treffertext angezeigt sondern nur der Artikelname und die URL...
2. andersprachige Websites:
Hier erhalte ich überhaupt keine Treffer, wenn ich nach einem Produkt in der jeweiligen Sprache suche. Meine fremdsprachigen Artikel-Listen scheinen überhaupt nicht indiziert zu werden.
Ich hoffe ich habe das verständlich erklärt, ich kann gerne die URL der entsprechenden Website weitergeben.
Ich benötige dringend Hilfe, ich komme einfach nicht weiter!
Bei allen anderen Seiten scheint RexSearch gut zu funktionieren...