Zum Inhalt springen

indexed_search | FE User | Anzahl Ergebnis reduziert sich

Erstellt am 11. April 2007 · 11 Antworten · letzte Antwort am 23. Februar 2012

Tags: Frontend-Benutzer, Suche, Frage

colemcmurphy ·

Hilfe!!!

Ich habe die Suche eingebunden. So lange ich keinen geschlossenen Bereich mit FE-Usern eingerichtet habe, funktioniert alles.

Jetzt richte ich einen FE-Gruppe ein und einen Nutzer und logge mich ein. Jetzt suche ich nach einem Begriff der den Pagebrowser öffnet.

In der ersten Ansicht zeigt die Trefferanzahl z.B. 146, klickt man dann auf die 2te Seite zeigt die Anzahl nur noch 142 und bei der dritten 135. Die letzte Seite zeigt dann die tatsäche Anzahl gefundener Treffer an!!!

Wie gesagt. Bevor man FE-User eingerichtet hat funktioniert es richtig.

Jetzt habe ich die User und Gruppen gelöscht, den alten Zustand hergestellt, ist der Fehler immer noch da. Mit löschen bleibt der Fehler bestehen?!?

Habe dies an zwei unterschiedlichen Projekten probiert, gleiches Problem.

habe es bei 2.9.0 und der 2.9.3er Version probiert!

Weiß hier jemand eine Lösung?

Viele Grüße
Jan

colemcmurphy ·

Ich habe eine Lösung für die indexed_search 2.9.0:

In der Datei: indexed_search/pi/class.tx_indexedsearch.php
ist die Zeile 597

// if (($c+1) > ($pointer+1)*$this->piVars['results'])	break;

auskommentiert und ab 592 der Code modifiziert und ergänzt:

// All rows for display is put into resultRows[]
if ($c > $pointer * $this->piVars['results'] && !($c > ($pointer+1)*$this->piVars['results']))	{
$row['result_number'] = $c;
$resultRows[] = $row;
// This may lead to a problem: If the result check is not stopped here, the search will take longer. However the result counter will not filter out grouped cHashes/pHashes that were not processed yet.
// if (($c+1) > ($pointer+1)*$this->piVars['results'])	break;

Damit läuft es!

omega ·

hi colemurphy,

😃 vielen Dank dass du die Lösung hier gepostet hast, hat auch bei mir geholfen!

lg Angela

Duke ·

und selbst drei Jahre später, bei indexed_search V.2.11, bist Du immer noch ein Held! 🙂

Ich kapier es nicht: was für einen Vorteil soll es haben, als eingeloggter User nur Seiten zu sehen, auf denen man zuvor schon einmal war?

Gibt es mittlerweile auch eine schickere Lösung, per TScript z.B.?

moritz ·

Oha... vor dem Problem stehe ich auch... :o

Irgendwie finde ich den Code in der PHP nicht :o

Welche Zeilennummern sind das denn in T3 4.2.6?

moritz ·

es ist die Version 2.11.1

Bestandteil von T3 4.2.6

Ist für ein Intranet, daher macht es für mich wirklich Sinn, diese Funktionalität der indexed search "umzubiegen".

afoeder ·

Hallo,

die Sache, dass eingeloggte User erst Suchergebnisse sehen, "wenn die Seite bereits besucht wurde", hat eine andere Ursache:

bei jedem Aufruf einer Seite wird die sogenannte grlist erstellt. Dies ist eine Kommaseparierte Liste der Usergruppen, der der User angehört.

Beim Indizieren der Seiten wird die grlist mitgespeichert. Damit wird sichergestellt, dass ein anonymer User nicht etwa Dinge durch die Suche sehen kann, die durch einen "höheren" User indiziert wurden.

Eine (temporäre!!) Lösung wäre TS:

plugin.tx_indexedsearch.show.forbiddenRecords = 1

zu setzen (vgl.

if ($row['show_resume'] || $this->conf['show.']['forbiddenRecords'])

in der class.tx_indexedsearch.php

Aber Achtung: damit würde per Suchfunktion jeder ein Suchresultat sehen, dass vielleicht nicht für seine Augen bestimmt ist.

Wer's genau wissen will kann einen Blick in die

function checkResume($row)

werfen. Darin gibt es eine Zeile

if (strcmp($row['gr_list'],$GLOBALS['TSFE']->gr_list)) {

genau die ist der springenden Punkt. Hier wird die grlist überprüft, und wenn sie Ungleich ist, wird der Datensatz letztlich aus den Suchtreffern rausgeworfen.

Die sichere Variante ist, den Crawler einzusetzen mit jeder möglichen Usergruppeniteration.

InforMedic ·
moritz schrieb

Oha... vor dem Problem stehe ich auch... :o

Irgendwie finde ich den Code in der PHP nicht :o

Welche Zeilennummern sind das denn in T3 4.2.6?

Hi,

ich habe den fix gerade (anno 2011) auch auf einer v4.2.6er mit indexed_search v2.11.1 eingespielt und yeah baby - endlich korrekte results und ein funktionierendes page browsing!

Die Zeile sieht aber inziwschen anders aus

if (!$exactCount && (($c+1) > ($pointer+1)*$this->piVars['results']))	{ break; }

und das steckt in der Zeile: 614

Mit bestem Gruß

scorpio ·

Die neue Zeile lässt sich auch per TS ausschalten

plugin.tx_indexedsearch.search.exactCount = 1

und dann ist alles toll😃

Getestet in indexed_search Version 2.12.0