Limitierte Suche

Begonnen von Ganneff, 15 Oktober 2013, 14:12:23

Vorheriges Thema - Nächstes Thema

Ganneff

Hi,

mit der neuen Forumssoftware ist die Suche extrem wichtig geworden, weil einfach alle Links von aussen defekt sind. (Was störend ist.)
Problem dabei ist nur dass die Suche mittlerweile limitiert ist: Alle naslang renn ich rein in die Meldung "Deine letzte Suche ist weniger als 5 Sekunden her". Ja, sicher, weil ich einen Begriff geändert habe und direkt wieder suchte, vlt. bringt der mehr (oder überhaupt) Treffer. Alles was man via Google, Wiki oder sonst so findet bringt ja nix mehr, da muss man halt hier die Suche traktieren...

Ich kann verstehen wenn man sowas für nicht registrierte limitieren will, um die ganzen blöden Bots halbwegs einzugrenzen, aber wäre es möglich es anzupassen das registrierte Nutzer nicht diese Meldung kriegen?

Danke,
Jörg

Martin Fischer

Zitat von: Ganneff am 15 Oktober 2013, 14:12:23
mit der neuen Forumssoftware ist die Suche extrem wichtig geworden, weil einfach alle Links von aussen defekt sind. (Was störend ist.)

ja, aber wie ich bereits schrieb, müsste sich nur jemand mal erbarmen ein paar redirect-rules für apache zu erstellen. und da ich im moment sehr knapp mit der zeit bin und am forum noch die eine oder andere baustelle zu beheben ist, die primärer ist, übertrag ich das gerne jemandem der die zeit hat. also: freiwillige vor!

wie ebenfalls bereits geschrieben, stelle ich auch meine regular expression aus dem konvertierungsscript zur verfügung. die müssen "nur" in eine/mehrere funktionierende redirekt rule(s) gewandelt werden. und schon wären alle "alten links" wieder funktionell!

Zitat von: Ganneff am 15 Oktober 2013, 14:12:23
Problem dabei ist nur dass die Suche mittlerweile limitiert ist: Alle naslang renn ich rein in die Meldung "Deine letzte Suche ist weniger als 5 Sekunden her". Ja, sicher, weil ich einen Begriff geändert habe und direkt wieder suchte, vlt. bringt der mehr (oder überhaupt) Treffer. Alles was man via Google, Wiki oder sonst so findet bringt ja nix mehr, da muss man halt hier die Suche traktieren...

Ich kann verstehen wenn man sowas für nicht registrierte limitieren will, um die ganzen blöden Bots halbwegs einzugrenzen, aber wäre es möglich es anzupassen das registrierte Nutzer nicht diese Meldung kriegen?

leider kann man das nicht differenzieren. der zeitwert für die suchanfrage gilt dann für alle benutzergruppen. man könnte lediglich die suchfunktion den gästen entziehen und dann die zeit auf 0 setzen.
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

betateilchen

Zitat von: Martin Fischer am 15 Oktober 2013, 19:12:26wie ebenfalls bereits geschrieben, stelle ich auch meine regular expression aus dem konvertierungsscript zur verfügung. die müssen "nur" in eine/mehrere funktionierende redirekt rule(s) gewandelt werden. und schon wären alle "alten links" wieder funktionell!

Du meinst, eine Regel, die aus

http://forum.fhem.de/index.php?t=msg&th=11693&goto=68960&rid=0

letztendlich ein

http://forum.fhem.de/index.php/topic,11693.msg68753.html#msg68753

macht? Ich schau mir das mal an.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Martin Fischer

Zitat von: betateilchen am 15 Oktober 2013, 19:58:34
Du meinst, eine Regel, die aus

http://forum.fhem.de/index.php?t=msg&th=11693&goto=68960&rid=0

letztendlich ein

http://forum.fhem.de/index.php/topic,11693.msg68753.html#msg68753

macht? Ich schau mir das mal an.

etwas mehr ist es leider schon... die obige rule wäre ja mal eben auf die schnelle erstellt..

es folgt mein "search and replace" aus dem konverter script. das ist php und besteht aus zwei arrays die mittels preg_replace den body eines postings durchsuchten und nach bbcode ersetzten.

wobei du die htmlentities (:,/,/,etc.) getrost ignorieren kannst. es geht ja bei dem rewrite der URI nur um den path, query und fragment teil.

du hast damit alle schreibweisen des alten forums und siehst wie sie im neuen lauten. mal so als anhalt...

viel erfolg! (nicht ironisch gemeint! ich wär dankbar wenn das jemand übernimmt!)

$row['body'] = preg_replace(
        array(
...
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)&amp;goto=(\d+?)&amp;rid=(\d+?)#msg_(\d+?)">http(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)&amp;goto=(\d+?)&amp;rid=(\d+?)#msg_(\d+?)">(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)&amp;goto=(\d+?)&amp;rid=(\d+?)">http(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)&amp;goto=(\d+?)&amp;rid=(\d+?)">(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)&amp;(start=0|unread=1)&amp;rid=(\d+?)">http(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)&amp;(start=0|unread=1)&amp;rid=(\d+?)">(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)&amp;prevload=1&amp;rid=(\d+?)&amp;start=(\d+?)">http(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)&amp;prevload=1&amp;rid=(\d+?)&amp;start=(\d+?)">(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)&amp;rid=(\d+?)">http(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)&amp;rid=(\d+?)">(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)">http(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php\?t=msg&amp;th=(\d+?)">(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php?t=msg&amp;goto=(\d+?)&amp;rid=(\d+?)&amp;srch=(.+?)#msg_(\d+?)">http(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php?t=msg&amp;goto=(\d+?)&amp;rid=(\d+?)&amp;srch=(.+?)#msg_(\d+?)">(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php?t=msg&amp;goto=(\d+?)&amp;rid=(\d+?)#msg_(\d+?)">http(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php?t=msg&amp;goto=(\d+?)&amp;rid=(\d+?)#msg_(\d+?)">(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php?t=msg&amp;goto=(\d+?)">http(.+?)</a>~is',
'~<a href="http(://|://)forum.fhem.de/index.php?t=msg&amp;goto=(\d+?)">(.+?)</a>~is',
...
        ),
        array(
...
'[url=http://forum.fhem.de/index.php?topic=$2.msg$3#msg$3]Link[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.msg$3#msg$3]$6[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.msg$3#msg$3]Link[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.msg$3#msg$3]$5[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.0]Link[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.0]$5[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.0]Link[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.0]$5[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.0]Link[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.0]$4[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.0]Link[/url]',
'[url=http://forum.fhem.de/index.php?topic=$2.0]$3[/url]',
'[url=http://forum.fhem.de/index.php?msg=$2]Link[/url]',
'[url=http://forum.fhem.de/index.php?msg=$2]$6[/url]',
'[url=http://forum.fhem.de/index.php?msg=$2]Link[/url]',
'[url=http://forum.fhem.de/index.php?msg=$2]$5[/url]',
'[url=http://forum.fhem.de/index.php?msg=$2]Link[/url]',
'[url=http://forum.fhem.de/index.php?msg=$2]$3[/url]',
...
        ),
        $row['body']
);

--
Admin, Developer, Gründungsmitglied des FHEM e.V.

betateilchen

Zitat von: Martin Fischer am 15 Oktober 2013, 20:55:43etwas mehr ist es leider schon... die obige rule wäre ja mal eben auf die schnelle erstellt..

sie würde zumindest die Google-Suchergebnisse abfackeln, solange Google noch nicht das ganze Forum neu indexiert hat.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Hallo Martin,

wenn Du die Umsetzung doch ohnehin schon in PHP umgesetzt hast, ist die Sache doch noch einfacher.

1. eine PHP Datei bauen, die Deine vorhandene URL-Konvertierung enthält, und die letztendlich einen 301-Redirect (Moved Permanently) auslöst.
2. eine Redirect-Rule, die alle Requests im "alten" Format an diese PHP-Datei weiterreicht.

Die Umsetzung mittels 301 wird übrigens auch von Google in solchen Fällen empfohlen, weil dadurch die Suchmaschinen-Agents schneller reagieren können.

Oder habe ich irgendwas falsch verstanden, das Du gerne haben möchtest?

Viele Grüße
Udo
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!