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/
Re: Addon RexSearch (Fulltext-Search-Addon)
Ich habe eine Frage zu Rexsearch. Kann ich zwei getrennte Bereich definieren, mit zwei getrennten Ergebnislisten? Ich habe einen Loginbereich auf der Website, der soll nach Möglichkeit separat durchsucht werden ODER in den Suchergebnissen nur auftauchen, wenn man eingeloggt ist. Realisiert ist er mit tvsfeuser. Vermutlich müsste ich das Rexsearch Addon modifizieren, damit das geht.
- runstop64
- Beiträge: 369
- Registriert: 23. Okt 2012, 21:34
- Wohnort: Hamburg
- Kontaktdaten: Website Facebook Twitter
Re: Addon RexSearch (Fulltext-Search-Addon)
@Popkultur
Ich habe so etwas ähnliches gerade mit dem Community Addon erstellt. Dafür habe ich lediglich das Ausgabe-Modul so anpassen müssen, dass vor der Ausgabe geprüft und gefiltert wird, ob die Inhalte im geschlossenen oder offenen Bereich liegen und der User sie sehen darf oder nicht.
Ich habe so etwas ähnliches gerade mit dem Community Addon erstellt. Dafür habe ich lediglich das Ausgabe-Modul so anpassen müssen, dass vor der Ausgabe geprüft und gefiltert wird, ob die Inhalte im geschlossenen oder offenen Bereich liegen und der User sie sehen darf oder nicht.
Re: Addon RexSearch (Fulltext-Search-Addon)
Und wie schauts aus mit Inhalten, die im Medienpool liegen und dort in einer Kategorie "Geschlossener Bereich"? Kann man das irgendwie von der Suche ausklammern?
Und bezüglich der nicht indexierbaren PDFs, hat mal jemand andere Klassen ausprobiert?
Und bezüglich der nicht indexierbaren PDFs, hat mal jemand andere Klassen ausprobiert?
- runstop64
- Beiträge: 369
- Registriert: 23. Okt 2012, 21:34
- Wohnort: Hamburg
- Kontaktdaten: Website Facebook Twitter
Re: Addon RexSearch (Fulltext-Search-Addon)
Ich weiß nicht genau, wie das TVS Addon funktioniert, aber RexSearch leifert ja sehr umfangreiche Infos im Rückgabe-Array. Da sollte sich auch eine Möglichkeit ergeben, die mit OOMedia die Kategorie abzufragen und die Daten auszusieben: http://blumbeet.com/files/cheatsheet_redaxo_42.pdf. Erstmal sind sie wohl leider mit drin.Und wie schauts aus mit Inhalten, die im Medienpool liegen und dort in einer Kategorie "Geschlossener Bereich"? Kann man das irgendwie von der Suche ausklammern?
Re: Addon RexSearch (Fulltext-Search-Addon)
Danke! Und noch eine Frage: Zur Zeit benutzt mein rexsearch die php Klasse pdf2txt zum PDF auslesen. Allerdings funktioniert das nicht zuverlässig, er lässt ca. 20% der PDFs aus. Was könnte man da tun? pdftotext (poppler utils) auf dem Server installieren?
Oder hat jemand schon erfolgreich eine andere Library integriert?
Oder hat jemand schon erfolgreich eine andere Library integriert?
Re: Addon RexSearch (Fulltext-Search-Addon)
Kann ich irgendwie einstellen (lassen im Frontend), wie Artikel aufgelistet werden sollen (Nach Relevanz, Datum etc.)?
- claudihey
- Beiträge: 117
- Registriert: 22. Nov 2008, 16:06
- Wohnort: Bingen am Rhein
- Kontaktdaten: Website
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo zusammen,
ich habe RexSearch installiert und bekomme bei der Ergebnis-Ausgabe immer folgende Fehlermeldung:
Redaxo-Version: 4.6.1
Habt Ihr eine Ahnung, wo der Fehler liegen könnte?
Danke im Voraus,
Claudia
Das Ausgabe-Modul sieht wie folgt aus:
Inhalt der class.rex_article_base.inc.php:
ich habe RexSearch installiert und bekomme bei der Ergebnis-Ausgabe immer folgende Fehlermeldung:
Code: Alles auswählen
Fatal error: Call to a member function getArticles() on null in xxx/redaxo/include/classes/class.rex_article_base.inc.php(395) : eval()'d code(84) : eval()'d code on line 11
Habt Ihr eine Ahnung, wo der Fehler liegen könnte?
Danke im Voraus,
Claudia
Das Ausgabe-Modul sieht wie folgt aus:
Code: Alles auswählen
<?php
if(!empty($_REQUEST['rexsearch']))
{
$rexsearch = new RexSearch();
$result = $rexsearch->search($_REQUEST['rexsearch']);
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 '</ul>';
}
}
?>
Code: Alles auswählen
<?php
/**
* Klasse regelt den Zugriff auf Artikelinhalte.
* Alle benötigten Daten werden von der DB bezogen.
*
* @package redaxo4
* @version svn:$Id$
*/
class rex_article_base
{
var $category_id;
var $article_id;
var $slice_id;
var $mode;
var $function;
var $template_id;
var $template_attributes;
var $ctype;
var $clang;
var $getSlice;
var $eval;
var $article_revision;
var $slice_revision;
var $warning;
var $info;
var $debug;
/*private*/ function rex_article_base($article_id = null, $clang = null)
{
global $REX;
$this->article_id = 0;
$this->template_id = 0;
$this->ctype = -1; // zeigt alles an
$this->slice_id = 0;
$this->mode = 'view';
$this->eval = false;
$this->article_revision = 0;
$this->slice_revision = 0;
$this->debug = false;
$this->ARTICLE = rex_sql::factory();
if ($this->debug) {
$this->ARTICLE->debugsql = 1;
}
if ($clang !== null) {
$this->setCLang($clang);
} else {
$this->setClang($REX['CUR_CLANG']);
}
// ----- EXTENSION POINT
rex_register_extension_point('ART_INIT', '',
array (
'article' => &$this,
'article_id' => $article_id,
'clang' => $this->clang
)
);
if ($article_id !== null) {
$this->setArticleId($article_id);
}
}
/*protected*/ function setSliceRevision($sr)
{
$this->slice_revision = (int) $sr;
}
// ----- Slice Id setzen für Editiermodus
/*public*/ function setSliceId($value)
{
$this->slice_id = $value;
}
/*public*/ function setClang($value)
{
global $REX;
if (!isset($REX['CLANG'][$value]) || $REX['CLANG'][$value] == '') {
$value = $REX['CUR_CLANG'];
}
$this->clang = $value;
}
/*public*/ function getArticleId()
{
return $this->article_id;
}
/*public*/ function getClang()
{
return $this->clang;
}
/*public*/ function setArticleId($article_id)
{
global $REX;
$article_id = (int) $article_id;
$this->article_id = $article_id;
// ---------- select article
$qry = 'SELECT * FROM ' . $REX['TABLE_PREFIX'] . 'article WHERE ' . $REX['TABLE_PREFIX'] . "article.id='$article_id' AND clang='" . $this->clang . "'";
$this->ARTICLE->setQuery($qry);
if ($this->ARTICLE->getRows() == 1) {
$this->template_id = $this->getValue('template_id');
$this->category_id = $this->getValue('category_id');
return true;
}
$this->article_id = 0;
$this->template_id = 0;
$this->category_id = 0;
return false;
}
/*public*/ function setTemplateId($template_id)
{
$this->template_id = $template_id;
}
/*public*/ function getTemplateId()
{
return $this->template_id;
}
/*public*/ function setMode($mode)
{
$this->mode = $mode;
}
/*public*/ function setFunction($function)
{
$this->function = $function;
}
/*public*/ function setEval($value)
{
if ($value) {
$this->eval = true;
} else {
$this->eval = false;
}
}
/*protected*/ function correctValue($value)
{
if ($value == 'category_id') {
if ($this->getValue('startpage') != 1) {
$value = 're_id';
} else {
$value = 'id';
}
}
// über SQL muss article_id -> id heissen
elseif ($value == 'article_id') {
$value = 'id';
}
return $value;
}
/*protected*/ function _getValue($value)
{
global $REX;
$value = $this->correctValue($value);
return $this->ARTICLE->getValue($value);
}
/*protected*/ function getValue($value)
{
// damit alte rex_article felder wie teaser, online_from etc
// noch funktionieren
// gleicher BC code nochmals in OOREDAXO::getValue
foreach (array('', 'art_', 'cat_') as $prefix) {
$val = $prefix . $value;
if ($this->hasValue($val)) {
return $this->_getValue($val);
}
}
return '[' . $value . ' not found]';
}
/*public*/ function hasValue($value)
{
return $this->ARTICLE->hasValue($this->correctValue($value));
}
/*protected*/ function outputSlice($artDataSql, $module_id, $I_ID,
$RE_CONTS, $RE_CONTS_CTYPE, $RE_MODUL_IN, $RE_MODUL_OUT,
$RE_MODUL_ID, $RE_MODUL_NAME, $RE_C)
{
if ($this->getSlice) {
foreach ($RE_CONTS as $k => $v) {
$I_ID = $k;
}
}
return $this->replaceVars($artDataSql, $RE_MODUL_OUT[$I_ID]);
}
/*public*/ function getArticle($curctype = -1)
{
global $REX, $I18N;
$this->ctype = $curctype;
if ($this->article_id == 0) {
return $I18N->msg('no_article_available');
}
$sliceLimit = '';
if ($this->getSlice) {
$sliceLimit = ' AND ' . $REX['TABLE_PREFIX'] . "article_slice.id = '" . $this->getSlice . "' ";
}
// ----- start: article caching
ob_start();
ob_implicit_flush(0);
$module_id = rex_request('module_id', 'int');
// ---------- alle teile/slices eines artikels auswaehlen
$sql = 'SELECT ' . $REX['TABLE_PREFIX'] . 'module.id, ' . $REX['TABLE_PREFIX'] . 'module.name, ' . $REX['TABLE_PREFIX'] . 'module.ausgabe, ' . $REX['TABLE_PREFIX'] . 'module.eingabe, ' . $REX['TABLE_PREFIX'] . 'article_slice.*, ' . $REX['TABLE_PREFIX'] . 'article.re_id
FROM
' . $REX['TABLE_PREFIX'] . 'article_slice
LEFT JOIN ' . $REX['TABLE_PREFIX'] . 'module ON ' . $REX['TABLE_PREFIX'] . 'article_slice.modultyp_id=' . $REX['TABLE_PREFIX'] . 'module.id
LEFT JOIN ' . $REX['TABLE_PREFIX'] . 'article ON ' . $REX['TABLE_PREFIX'] . 'article_slice.article_id=' . $REX['TABLE_PREFIX'] . 'article.id
WHERE
' . $REX['TABLE_PREFIX'] . "article_slice.article_id='" . $this->article_id . "' AND
" . $REX['TABLE_PREFIX'] . "article_slice.clang='" . $this->clang . "' AND
" . $REX['TABLE_PREFIX'] . "article.clang='" . $this->clang . "' AND
" . $REX['TABLE_PREFIX'] . "article_slice.revision='" . $this->slice_revision . "'
" . $sliceLimit . '
ORDER BY ' . $REX['TABLE_PREFIX'] . 'article_slice.re_article_slice_id';
$artDataSql = rex_sql::factory();
if ($this->debug) {
$artDataSql->debugsql = 1;
}
$artDataSql->setQuery($sql);
$rows = $artDataSql->getRows();
$RE_CONTS = array();
$RE_CONTS_CTYPE = array();
$RE_MODUL_OUT = array();
$RE_MODUL_IN = array();
$RE_MODUL_ID = array();
$RE_MODUL_NAME = array();
$RE_C = array();
// ---------- SLICE IDS/MODUL SETZEN - speichern der daten
for ($i = 0; $i < $rows; $i++) {
$RE_SLICE_ID = $artDataSql->getValue($REX['TABLE_PREFIX'] . 'article_slice.re_article_slice_id');
$RE_CONTS[$RE_SLICE_ID] = $artDataSql->getValue($REX['TABLE_PREFIX'] . 'article_slice.id');
$RE_CONTS_CTYPE[$RE_SLICE_ID] = $artDataSql->getValue($REX['TABLE_PREFIX'] . 'article_slice.ctype');
$RE_MODUL_IN[$RE_SLICE_ID] = $artDataSql->getValue($REX['TABLE_PREFIX'] . 'module.eingabe');
$RE_MODUL_OUT[$RE_SLICE_ID] = $artDataSql->getValue($REX['TABLE_PREFIX'] . 'module.ausgabe');
$RE_MODUL_ID[$RE_SLICE_ID] = $artDataSql->getValue($REX['TABLE_PREFIX'] . 'module.id');
$RE_MODUL_NAME[$RE_SLICE_ID] = $artDataSql->getValue($REX['TABLE_PREFIX'] . 'module.name');
$RE_C[$RE_SLICE_ID] = $i;
$artDataSql->next();
}
// pre hook
$this->preArticle();
// ---------- SLICE IDS SORTIEREN UND AUSGEBEN
$I_ID = 0;
$PRE_ID = 0;
$LCTSL_ID = 0;
$artDataSql->reset();
$articleContent = '';
for ($i = 0; $i < $rows; $i++) {
// ----- ctype unterscheidung
if ($this->mode != 'edit' && $i == 0) {
$articleContent = "<?php if (\$this->ctype == '" . $RE_CONTS_CTYPE[$I_ID] . "' || (\$this->ctype == '-1')) { ?>";
}
// ------------- EINZELNER SLICE - AUSGABE
$artDataSql->counter = $RE_C[$I_ID];
$slice_content = $this->outputSlice(
$artDataSql,
$module_id,
$I_ID,
$RE_CONTS,
$RE_CONTS_CTYPE,
$RE_MODUL_IN,
$RE_MODUL_OUT,
$RE_MODUL_ID,
$RE_MODUL_NAME,
$RE_C
);
// --------------- ENDE EINZELNER SLICE
// --------------- EP: SLICE_SHOW
$slice_content = rex_register_extension_point(
'SLICE_SHOW',
$slice_content,
array(
'article_id' => $this->article_id,
'clang' => $this->clang,
'ctype' => $RE_CONTS_CTYPE[$I_ID],
'module_id' => $RE_MODUL_ID[$I_ID],
'slice_id' => $RE_CONTS[$I_ID],
'function' => $this->function,
'function_slice_id' => $this->slice_id
)
);
// ---------- slice in ausgabe speichern wenn ctype richtig
if ($this->ctype == -1 or $this->ctype == $RE_CONTS_CTYPE[$I_ID]) {
$articleContent .= $slice_content;
// last content type slice id
$LCTSL_ID = $RE_CONTS[$I_ID];
}
// ----- zwischenstand: ctype .. wenn ctype neu dann if
if ($this->mode != 'edit' && isset($RE_CONTS_CTYPE[$RE_CONTS[$I_ID]]) && $RE_CONTS_CTYPE[$I_ID] != $RE_CONTS_CTYPE[$RE_CONTS[$I_ID]] && $RE_CONTS_CTYPE[$RE_CONTS[$I_ID]] != '') {
$articleContent .= "<?php } if(\$this->ctype == '" . $RE_CONTS_CTYPE[$RE_CONTS[$I_ID]] . "' || \$this->ctype == '-1'){ ?>";
}
// zum nachsten slice
$I_ID = $RE_CONTS[$I_ID];
$PRE_ID = $I_ID;
}
// ----- end: ctype unterscheidung
if ($this->mode != 'edit' && $i > 0) {
$articleContent .= '<?php } ?>';
}
// ----- post hook
$articleContent = $this->postArticle($articleContent, $LCTSL_ID, $module_id);
// -------------------------- schreibe content
if ($this->eval === false) {
echo $articleContent;
} else {
eval('?>' . $articleContent);
}
// ----- end: article caching
$CONTENT = ob_get_contents();
ob_end_clean();
return $CONTENT;
}
/*protected*/ function preArticle()
{
// nichts tun
}
/*protected*/ function postArticle($articleContent, $LCTSL_ID, $module_id)
{
// nichts tun
return $articleContent;
}
// ----- Template inklusive Artikel zurückgeben
/*public*/ function getArticleTemplate()
{
// global $REX hier wichtig, damit in den Artikeln die Variable vorhanden ist!
global $REX;
if ($this->template_id != 0 && $this->article_id != 0) {
ob_start();
ob_implicit_flush(0);
$TEMPLATE = new rex_template();
$TEMPLATE->setId($this->template_id);
$tplContent = $this->replaceCommonVars($TEMPLATE->getTemplate());
eval('?>' . $tplContent);
$CONTENT = ob_get_contents();
ob_end_clean();
$CONTENT = $this->replaceLinks($CONTENT);
} else {
$CONTENT = 'no template';
}
return $CONTENT;
}
// ----- Modulvariablen werden ersetzt
/*protected*/ function replaceVars(&$sql, $content)
{
$content = $this->replaceObjectVars($sql, $content);
$content = $this->replaceCommonVars($content);
return $content;
}
// ----- REX_VAR Ersetzungen
/*protected*/ function replaceObjectVars(&$sql, $content)
{
global $REX;
$tmp = '';
$sliceId = $sql->getValue($REX['TABLE_PREFIX'] . 'article_slice.id');
$flushValues = false;
foreach ($REX['VARIABLES'] as $var) {
if ($this->mode == 'edit') {
if (($this->function == 'add' && $sliceId == '0') ||
($this->function == 'edit' && $sliceId == $this->slice_id)
) {
if (isset($REX['ACTION']['SAVE']) && $REX['ACTION']['SAVE'] === false) {
// Wenn der aktuelle Slice nicht gespeichert werden soll
// (via Action wurde das Nicht-Speichern-Flag gesetzt)
// Dann die Werte manuell aus dem Post übernehmen
// und anschließend die Werte wieder zurücksetzen,
// damit die nächsten Slices wieder die Werte aus der DB verwenden
$var->setACValues($sql, $REX['ACTION']);
$tmp = $var->getBEInput($sql, $content);
$flushValues = true;
} else {
// Slice normal parsen
$tmp = $var->getBEInput($sql, $content);
// Werte wieder zuruecksetzen, damit die naechsten Slices wieder
// die Werte aus der DB verwenden
$flushValues = true;
}
} else {
$tmp = $var->getBEOutput($sql, $content);
}
} else {
$tmp = $var->getFEOutput($sql, $content);
}
// Rückgabewert nur auswerten wenn auch einer vorhanden ist
// damit $content nicht verfälscht wird
// null ist default Rückgabewert, falls kein RETURN in einer Funktion ist
if ($tmp !== null) {
$content = $tmp;
}
}
if ($flushValues) {
$sql->flushValues();
}
return $content;
}
// ---- Artikelweite globale variablen werden ersetzt
/*public*/ function replaceCommonVars($content, $template_id = null)
{
global $REX;
static $user_id = null;
static $user_login = null;
// UserId gibts nur im Backend
if ($user_id === null) {
if (isset($REX['USER'])) {
$user_id = $REX['USER']->getValue('user_id');
$user_login = $REX['USER']->getValue('login');
} else {
$user_id = '';
$user_login = '';
}
}
if (!$template_id) {
$template_id = $this->getTemplateId();
}
static $search = array(
'REX_ARTICLE_ID',
'REX_CATEGORY_ID',
'REX_CLANG_ID',
'REX_TEMPLATE_ID',
'REX_USER_ID',
'REX_USER_LOGIN'
);
$replace = array(
$this->article_id,
$this->category_id,
$this->clang,
$template_id,
$user_id,
$user_login
);
return str_replace($search, $replace, $content);
}
/*protected*/ function replaceLinks($content)
{
return preg_replace_callback(
'@redaxo://(\d+)(?:-(\d+))?/?@i',
create_function(
'$matches',
'return rex_getUrl($matches[1], isset($matches[2]) ? $matches[2] : ' . (integer) $this->clang . ');'
),
$content
);
}
}
Re: Addon RexSearch (Fulltext-Search-Addon)
Im Zweifelsfall auch mal Redaxo-Cache löschen und Neu indexieren lassen.
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo!
Hat jemand auch das Problem, dass Dateinamen mit Pluszeichen nicht indexiert werden (PDF)? WIe kann ich das umgehen, ohne die Datei umzubenennen?
Hat jemand auch das Problem, dass Dateinamen mit Pluszeichen nicht indexiert werden (PDF)? WIe kann ich das umgehen, ohne die Datei umzubenennen?
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: Addon RexSearch (Fulltext-Search-Addon)
Hej,
das Plus kann gar nicht vorkommen, wenn die Datei über den Medienpool hochgeladen wurde.
Es werden alle Sonderzeichen außer "_", "-" und "." umgewandelt.
vg Thomas
das Plus kann gar nicht vorkommen, wenn die Datei über den Medienpool hochgeladen wurde.
Es werden alle Sonderzeichen außer "_", "-" und "." umgewandelt.
vg Thomas
Re: Addon RexSearch (Fulltext-Search-Addon)
Tja, wir haben ein multiuploadtool, was da wohl ein wenig geschlampt hat. Das Pluszeichen ist meines Wissens auch ein legitimes Dateisymbol.
Kriegt man es denn hin, das rexsearch das frisst?
Außerdem habe ich das Problem, dass RexSearch nur dann (schrittweise) indexiert, wenn ich in der /redaxo/index.php ini_set('display_errors', 1); stehen hab. Wieso das?
Kriegt man es denn hin, das rexsearch das frisst?
Außerdem habe ich das Problem, dass RexSearch nur dann (schrittweise) indexiert, wenn ich in der /redaxo/index.php ini_set('display_errors', 1); stehen hab. Wieso das?
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: Addon RexSearch (Fulltext-Search-Addon)
Hej,
das indexieren müsstest du manuell anstoßen oder im WIki nachlesen. Da steht wie du das Indexieren selbst auslösen kannst
Wegen deinem + Zeichen. Weiß ich leider nicht. Musst du selber nachsehen.
vg Thomas
das indexieren müsstest du manuell anstoßen oder im WIki nachlesen. Da steht wie du das Indexieren selbst auslösen kannst
Wegen deinem + Zeichen. Weiß ich leider nicht. Musst du selber nachsehen.
vg Thomas
Re: Addon RexSearch (Fulltext-Search-Addon)
Habe jetzt das +-Zeichen mit str_replace in der class.rexsearch.inc.php ersetzt, jetzt gehts. Allerdings will er nach wie vor nicht (auch nicht manuell und schrittweise) indexieren, erst wenn ich in der pages/ajax.inc.php das ini_set('display_errors', 1); setze, macht ers.
Und kann es sein, dass der Dateiname selbst nicht indexiert wird? Müsste aber eigentlich...
Und kann es sein, dass der Dateiname selbst nicht indexiert wird? Müsste aber eigentlich...
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo liebe Leute,
habe die RexSearch neu installiert und dne Suchindex erstellt. Komischer weise findet er etwas, aber nicht das Keyword, was ich gesucht habe. Was kann das sein?
LG Percy
habe die RexSearch neu installiert und dne Suchindex erstellt. Komischer weise findet er etwas, aber nicht das Keyword, was ich gesucht habe. Was kann das sein?
LG Percy
Re: Addon RexSearch (Fulltext-Search-Addon)
Geht mir grade genauso, er findet nur einen Teil der Ergebnisse. Werde jetzt mehrmals indexieren habe das Gefühl das er das jedesmal anders macht.
Re: Addon RexSearch (Fulltext-Search-Addon)
Exakt. Bei mir auch. Ich weiß nur nicht was ich sonst noch machen könnte...Popkultur hat geschrieben:Geht mir grade genauso, er findet nur einen Teil der Ergebnisse. Werde jetzt mehrmals indexieren habe das Gefühl das er das jedesmal anders macht.
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo Liebe Leute,
Das Problem bei dier Suche besteht immernoch und ich verzweifele langsam. Gibt es da einen Lösungsansatz?
Und ich hätte da noch eine Frage. Kann man die Suche sprachgesteuert einbinden? Wenn ich zumbeispiel nach Team Suche, findet er den Begriff in allen Sprachen. Es soll aber nur in der aktuellen Sprache gesucht werden. Gibts da eine Möglichkeit?
LG Percy
Das Problem bei dier Suche besteht immernoch und ich verzweifele langsam. Gibt es da einen Lösungsansatz?
Und ich hätte da noch eine Frage. Kann man die Suche sprachgesteuert einbinden? Wenn ich zumbeispiel nach Team Suche, findet er den Begriff in allen Sprachen. Es soll aber nur in der aktuellen Sprache gesucht werden. Gibts da eine Möglichkeit?
LG Percy
Re: Addon RexSearch (Fulltext-Search-Addon)
Zu deiner Frage siehe die Doku ganz unten "Wie kann ich sprachabhängig suchen?"
http://www.redaxo.org/de/wiki/index.php?n=R4.Rexsearch
http://www.redaxo.org/de/wiki/index.php?n=R4.Rexsearch
Re: Addon RexSearch (Fulltext-Search-Addon)
Sehr gut! Kann ich da auch anstatt der "REX_CLANG_ID" auch "CUR_CLANG" nutzen?RexDude hat geschrieben:Zu deiner Frage siehe die Doku ganz unten "Wie kann ich sprachabhängig suchen?"
http://www.redaxo.org/de/wiki/index.php?n=R4.Rexsearch
LG Percy
### EDIT ####
Die sprachabhängikeit läuft Allerdings das mit den Suchbegriffen nicht
Re: Addon RexSearch (Fulltext-Search-Addon)
Probiers halt aus
Re: Addon RexSearch (Fulltext-Search-Addon)
Siehe oben
Re: Addon RexSearch (Fulltext-Search-Addon)
Sooo neues Problem. Wollte den Suchindex neu erstellen und was is da? Die zu indexierenden Seiten sind auf einmal auf 102 und dann auf 60 gefallen. In die Datenbank wird nichts geschrieben und somit auch nichts augegeben.
Habe händisch und übers Backend alles gelöscht und neu installiert. Aber alles beim alten. Was kann das sein? Gestern gings doch noch wunderbar! Ich dreh hier ab! Ahhhhhhhh!
Habe händisch und übers Backend alles gelöscht und neu installiert. Aber alles beim alten. Was kann das sein? Gestern gings doch noch wunderbar! Ich dreh hier ab! Ahhhhhhhh!
- ralf.schlott
- Beiträge: 625
- Registriert: 5. Dez 2007, 21:22
- Wohnort: Hamburch
- Kontaktdaten: Website
Re: Addon RexSearch (Fulltext-Search-Addon)
Toll, dass es so ein Suchaddon gibt. Alternativlos!
Aber ich habe ein kleines Problem, wofür ich auch ein Issue aufgemacht habe:
https://github.com/xong/rexsearch/issues/18
Ich setze rexsearch hier ein:
http://www.kuschverleih.de
Sehr merkwürdig ist es, wenn ich den Artikel TI17-01 suchen möchte. TI17-02 findet er. Ersteren nicht.
Suche ich TI17- , ist der der Artikel im Suchergebnis aber dabei. Bei TI17-0 ist er aber auch nicht dabei.
Die Artikel befinden sich im Addon TvsShop. Aber das sollte ja nicht das Problem sein. Denn eine Suche nach Holz oder weiß findet er.
Wie ist das zu erklären?
Danke für das Addon aber!
Aber ich habe ein kleines Problem, wofür ich auch ein Issue aufgemacht habe:
https://github.com/xong/rexsearch/issues/18
Ich setze rexsearch hier ein:
http://www.kuschverleih.de
Sehr merkwürdig ist es, wenn ich den Artikel TI17-01 suchen möchte. TI17-02 findet er. Ersteren nicht.
Suche ich TI17- , ist der der Artikel im Suchergebnis aber dabei. Bei TI17-0 ist er aber auch nicht dabei.
Die Artikel befinden sich im Addon TvsShop. Aber das sollte ja nicht das Problem sein. Denn eine Suche nach Holz oder weiß findet er.
Wie ist das zu erklären?
Danke für das Addon aber!
- Danke für Redaxo! -
http://www.prenzlweb.de
http://www.prenzlweb.de
große Suchindextabelle - Addon RexSearch (Fulltext-Search-Ad
Ich freue mich auch immer wieder über dieses tolle Addon! Vielen Dank!
Gerade stehe ich allerdings vor einem Problem: Ich habe heute für einen Kunden ca. 100 PDFs auf seine Website geladen. RexSearch hat die auch prima indiziert. Sie Suche liefert jetzt nur noch manchmal Ergebnisse. Meistens gibt es ein Timeout. Nachdem ich die max_execution_time per .htaccess erhöht habe antwortet die DB nach einer Zeit nicht mehr. Die RexSearch Statistik gibt folgendes aus:
Augenscheinlich liegt das Problem in der riesengroßen Datenbank.
Hat jemand einen Tipp wie man das lösen kann?
Brauche ich ein leistungsfähigeres Hosting dafür oder gibt es irgendeinen Workaround?
UPDATE
Ich habe noch ein wenig mit den Einstellungen gespielt und unter anderem die Ähnlichkeitssuche abgestellt, das memory_limit hochgesetzt und die 'Teilwortsuche' (MySQL-Suchmodus) abgestellt.
Das ist zwar nicht optimal, aber funktioniert erst mal.
LG,
Ingo
Gerade stehe ich allerdings vor einem Problem: Ich habe heute für einen Kunden ca. 100 PDFs auf seine Website geladen. RexSearch hat die auch prima indiziert. Sie Suche liefert jetzt nur noch manchmal Ergebnisse. Meistens gibt es ein Timeout. Nachdem ich die max_execution_time per .htaccess erhöht habe antwortet die DB nach einer Zeit nicht mehr. Die RexSearch Statistik gibt folgendes aus:
Code: Alles auswählen
Anzahl indexierter Datensätze: 133
Anzahl eindeutiger Datensätze im Suchindex (z. B. werden Artikel gruppiert): 116
...
Anzahl unterschiedlicher, im Suchindex vorhandener Begriffe: 48691
Anzahl im Cache vorgehaltener Suchen: 9
Größe des Index der Suchindex-Tabelle (587_searchindex): 47,60 MByte
Größe der Daten der Suchindex-Tabelle (587_searchindex): 17,28 MByte
Größe der Indexe aller RexSearch-Tabellen: 91,62 MByte
Größe der Daten aller RexSearch-Tabellen: 19,69 MByte
Hat jemand einen Tipp wie man das lösen kann?
Brauche ich ein leistungsfähigeres Hosting dafür oder gibt es irgendeinen Workaround?
UPDATE
Ich habe noch ein wenig mit den Einstellungen gespielt und unter anderem die Ähnlichkeitssuche abgestellt, das memory_limit hochgesetzt und die 'Teilwortsuche' (MySQL-Suchmodus) abgestellt.
Das ist zwar nicht optimal, aber funktioniert erst mal.
LG,
Ingo
-
- Beiträge: 1371
- Registriert: 4. Aug 2006, 14:06
- Wohnort: Rheinberg
- Kontaktdaten: Website Twitter
Re: Addon RexSearch (Fulltext-Search-Addon)
Hallo und Danke für Rexsearch.
Ich habe eine Frage und einen Hinweis
1) Gibt es eine Möglichkeit dem Addon mitzuteilen, dass es die Treffer nach z.B. Create-Date oder updatedate sortiert ausgibt?
Gerade in einem Newsbereich wäre es schön die Ergebnisse chronologisch zu erhalten.
2) In aktuellen PHP-Versionen scheint die Suche bei aktivierter Ähnlichkeitssuche zu spinnen.
Es fragt immer "Meinten Sie…" obwohl Treffer für das gesuchte Wort gefunden werden mussten.
Schalte ich es ab wird das gesuchte Wort auch gefunden.
Ich habe eine Frage und einen Hinweis
1) Gibt es eine Möglichkeit dem Addon mitzuteilen, dass es die Treffer nach z.B. Create-Date oder updatedate sortiert ausgibt?
Gerade in einem Newsbereich wäre es schön die Ergebnisse chronologisch zu erhalten.
2) In aktuellen PHP-Versionen scheint die Suche bei aktivierter Ähnlichkeitssuche zu spinnen.
Es fragt immer "Meinten Sie…" obwohl Treffer für das gesuchte Wort gefunden werden mussten.
Schalte ich es ab wird das gesuchte Wort auch gefunden.