„Verwirrte“ Suchfunktion?
„Verwirrte“ Suchfunktion?
Mein Blog hat
* 4 Artikel in der Kategorie „Serendipity“
* 8 mit dem Tag „s9y“ versehene Artikel (von denen aber in vieren der Begriff „Serendipity“ nicht vorkommt, die übrigen 4 entsprechen denen aus der gleichnamigen Kategorie)
Verwende ich „Serendipity“ im Suchformular, erhalte ich:
* „Die Suche nach "Serendipity" ergab 15 Treffer:“
* 2 Artikel, von denen einer weder das Wort enthält noch der Kategorie zugewiesen ist
* Verweise auf 2 statische Seiten (beide enthalten den Suchbegriff)
Äh.
Außerdem auf der Ergebnisseite drollig: Trotz angeblich 15 Treffern (es müssten wohl 4 Artikel + 2 Seiten, also 6 sein) bekomme ich keine Pagination auf der Ergebnisseite, stattdessen werden beide o.g. Artikel ausgegeben, obwohl ich ausdrücklich im Blog (nicht im Template) vorgegeben habe, dass 1 Artikel pro Seite angezeigt werden soll.
Zugegeben, mein ins Archiv ausgelagertes Suchformular ist etwas exotisch, aber das …?
YL
* 4 Artikel in der Kategorie „Serendipity“
* 8 mit dem Tag „s9y“ versehene Artikel (von denen aber in vieren der Begriff „Serendipity“ nicht vorkommt, die übrigen 4 entsprechen denen aus der gleichnamigen Kategorie)
Verwende ich „Serendipity“ im Suchformular, erhalte ich:
* „Die Suche nach "Serendipity" ergab 15 Treffer:“
* 2 Artikel, von denen einer weder das Wort enthält noch der Kategorie zugewiesen ist
* Verweise auf 2 statische Seiten (beide enthalten den Suchbegriff)
Äh.
Außerdem auf der Ergebnisseite drollig: Trotz angeblich 15 Treffern (es müssten wohl 4 Artikel + 2 Seiten, also 6 sein) bekomme ich keine Pagination auf der Ergebnisseite, stattdessen werden beide o.g. Artikel ausgegeben, obwohl ich ausdrücklich im Blog (nicht im Template) vorgegeben habe, dass 1 Artikel pro Seite angezeigt werden soll.
Zugegeben, mein ins Archiv ausgelagertes Suchformular ist etwas exotisch, aber das …?
YL
Re: „Verwirrte“ Suchfunktion?
Tja, echt verwirrend!
Einer von den 4 Artikeln, die in der Kategorie: 'Serendipity' sind, enthält dieses Wort nicht, ein weiterer nur ein Mal, soweit ich auf die Schnelle sehen kann. Deswegen werden wahrscheinlich nur 2 Artikel weitergereicht. (Ob die "15" Summe dem gerecht wird? 3 Artikel mit "Serendipity", beide bodies, Links, Comment und Footer ist magischerweise genau 15, ohne Gewähr. Warum das so ist, obwohl search auf MATCH(title,body,extended) beschränkt ist..., ???. Ist wahrscheinlich nur Zufall.)
Denn es gibt ja diese berühmte search Beschränkung: siehe u.a. Garvin Antwort. http://board.s9y.org/viewtopic.php?f=10 ... #p10428387
Warum die Pagination davon unberührt bleibt, kann ich gerade nicht sagen. Vielleicht gibt es da ja auch so eine Einschränkung, oder limit wird bei einer 1 Artikel Pagination auseinandergehauen, weil auf ['GET']['page']-1 basiert.
Schalt doch mal $log_queries = true, in der functions_entries.inc:
function &serendipity_searchEntries($term, $limit = '', $searchresults = '') {
...
static $log_queries = false;
...
Einer von den 4 Artikeln, die in der Kategorie: 'Serendipity' sind, enthält dieses Wort nicht, ein weiterer nur ein Mal, soweit ich auf die Schnelle sehen kann. Deswegen werden wahrscheinlich nur 2 Artikel weitergereicht. (Ob die "15" Summe dem gerecht wird? 3 Artikel mit "Serendipity", beide bodies, Links, Comment und Footer ist magischerweise genau 15, ohne Gewähr. Warum das so ist, obwohl search auf MATCH(title,body,extended) beschränkt ist..., ???. Ist wahrscheinlich nur Zufall.)
Denn es gibt ja diese berühmte search Beschränkung: siehe u.a. Garvin Antwort. http://board.s9y.org/viewtopic.php?f=10 ... #p10428387
Warum die Pagination davon unberührt bleibt, kann ich gerade nicht sagen. Vielleicht gibt es da ja auch so eine Einschränkung, oder limit wird bei einer 1 Artikel Pagination auseinandergehauen, weil auf ['GET']['page']-1 basiert.
Schalt doch mal $log_queries = true, in der functions_entries.inc:
function &serendipity_searchEntries($term, $limit = '', $searchresults = '') {
...
static $log_queries = false;
...
Regards,
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Re: „Verwirrte“ Suchfunktion?
Und dann loggt das was wohin? Die Suchverwirrung ist mir ja fast wurscht, aber die Pagination bzw. Nicht-Pagination nervt mich schon.Timbalu wrote:Schalt doch mal $log_queries = true, in der functions_entries.inc:
Interessant aber: Bei anderen Suchbegriffen funktioniert es erwartungsgemäß, sogar mit Pagination. Nimmt man z.B. „Grunt“ oder „2k11“ als Suchbegriff, klappt es. „Webdesign“ funktioniert auch, es kann also nicht daran liegen, dass es eine dem Suchbegriff entsprechende Kategorie gibt. Auch eine Irritation durch gleichzeitige Suchergebnisse auf statischen Seiten kann ausgeschlossen werden, die Suche nach z.B. „Webkrauts“ klappt ebenfalls.
Das ist, äh, irgendwie strange.
YL
Re: „Verwirrte“ Suchfunktion?
Die Suchquery, nehme ich an. Wohin steht kurz unterhalb von static $log_queries = false; Aber wie ich gerade sehe, heißt das zwar log_queries, schreibt aber nur u.a. den searchterm, hilft also wahrscheinlich nichts.yellowled wrote:Und dann loggt das was wohin?
Ist das pagination Problem weg, wenn du auf 2 stellst?
"2k11" gibts ja auch wirklich mehrfach in den entries.
Regards,
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Re: „Verwirrte“ Suchfunktion?
Ja. Ergebnis:Timbalu wrote:Ist das pagination Problem weg, wenn du auf 2 stellst?
* Die Suche nach "Serendipity" ergab 15 Treffer:
* Es werden nun 4 statt 2 Artikel ausgegeben.
* In 2 der ausgegebenen Artikel kommt der Begriff „Serendipity“ nicht vor.
* Keine Pagination.
YL
Re: „Verwirrte“ Suchfunktion?
Noch lustiger wirds mit "S9y*". 8 Anzeigen, eine davon doppelt (Bower - ist die ev. in mehreren Kategorien?), 3 oder 4 ohne Vorkommen..., aber Pagination klappt. Davon haben mind. 3 mehrere Vorkommen.
War da nicht was mit mind. 3 Eintragsvorkommen mit jeweils mehreren Vorkommen innerhalb des match?
Was ist wenn du mal mit PhpMyAdmin direkt suchst?
War da nicht was mit mind. 3 Eintragsvorkommen mit jeweils mehreren Vorkommen innerhalb des match?
Was ist wenn du mal mit PhpMyAdmin direkt suchst?
Regards,
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Re: „Verwirrte“ Suchfunktion?
Die wirklich ziemlich komplizierte Query (bei mir mit $serendipity['fetchLimit'] = 6) lautet:
und läuft bei mir lokal im PhpMyAdmin nur, ohne das letzte " lang=en".
Sehr vereinfacht gestaltet also so:
Ergibt bei gleichem LIMIT gleiche Anzahl.
Die Einträge ohne Vorkommen offenbaren sich schon mal im Nachhinein als solche wenigstens mit images. Und die haben "serendipity" als Vorkommen im body (<a class="serendipity_image_link" ...)!
Das liegt natürlich an diesem besonderen Suchwort!
Code: Select all
SELECT ep_sticky.value AS orderkey, ep_cache_extended.value AS ep_cache_extended, ep_cache_body.value AS ep_cache_body, e.id, e.authorid, a.realname AS author, e.allow_comments, e.moderate_comments, a.email, e.timestamp, e.comments, e.title, e.body, e.extended, e.trackbacks, e.exflag, e.isdraft, e.last_modified, a.username AS loginname FROM
s9y_entries e
LEFT JOIN s9y_authors a
ON e.authorid = a.authorid
LEFT JOIN s9y_entrycat ec
ON e.id = ec.entryid
LEFT OUTER JOIN s9y_entryproperties ep_cache_extended
ON (e.id = ep_cache_extended.entryid AND ep_cache_extended.property = 'ep_cache_extended')
LEFT OUTER JOIN s9y_entryproperties ep_cache_body
ON (e.id = ep_cache_body.entryid AND ep_cache_body.property = 'ep_cache_body')
LEFT OUTER JOIN s9y_entryproperties ep_access
ON (e.id = ep_access.entryid AND ep_access.property = 'ep_access')
LEFT JOIN s9y_entryproperties ep_sticky
ON (e.id = ep_sticky.entryid AND ep_sticky.property = 'ep_is_sticky') LEFT JOIN s9y_category c
ON ec.categoryid = c.categoryid LEFT JOIN s9y_authorgroups AS acl_a
ON acl_a.authorid = 1
LEFT JOIN s9y_access AS acl_acc
ON ( acl_acc.artifact_mode = 'read'
AND acl_acc.artifact_type = 'category'
AND acl_acc.artifact_id = c.categoryid
)
WHERE
(MATCH(title,body,extended) AGAINST('Serendipity'))
AND isdraft = 'false' AND timestamp <= 1377958200 AND (ep_access.property IS NULL OR ep_access.value = 'member' OR ep_access.value = 'public' OR (ep_access.value = 'private' AND e.authorid = 1)) AND (
c.categoryid IS NULL
OR ( acl_acc.groupid = acl_a.groupid OR acl_acc.groupid = 0)
OR ( acl_acc.artifact_id IS NULL
)
) GROUP BY e.id ORDER BY timestamp DESC LIMIT 6 lang=en
Sehr vereinfacht gestaltet also so:
Code: Select all
SELECT * FROM `s9y_entries`
WHERE (CONVERT( `title` USING utf8 ) LIKE '%Serendipity%'
OR CONVERT( `body` USING utf8 ) LIKE '%Serendipity%'
OR CONVERT( `extended` USING utf8 ) LIKE '%Serendipity%'
) AND ( `authorid` =1 OR `authorid` =0 )
AND `isdraft` = 'false'
AND timestamp <=1377958200
ORDER BY timestamp DESC
LIMIT 0 , 30
Die Einträge ohne Vorkommen offenbaren sich schon mal im Nachhinein als solche wenigstens mit images. Und die haben "serendipity" als Vorkommen im body (<a class="serendipity_image_link" ...)!
Das liegt natürlich an diesem besonderen Suchwort!
Regards,
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Re: „Verwirrte“ Suchfunktion?
Nein, ich benutze keine multiplen Kategorien.Timbalu wrote:Noch lustiger wirds mit "S9y*". 8 Anzeigen, eine davon doppelt (Bower - ist die ev. in mehreren Kategorien?)
YL
Re: „Verwirrte“ Suchfunktion?
Das ist allerdings Murks, aber vermutlich genau der springende Punkt. Das dürfte dann ja in anderen Themes (ich verwende kaum „übliche“ s9y-Klassen im Markup) noch „schlimmer“ ausfallen.Timbalu wrote:Die Einträge ohne Vorkommen offenbaren sich schon mal im Nachhinein als solche wenigstens mit images. Und die haben "serendipity" als Vorkommen im body (<a class="serendipity_image_link" ...)!
Aber warum steigt die Pagination dabei aus?
YL
Re: „Verwirrte“ Suchfunktion?
Ich nehme stark an wegen $serendipity['fetchLimit'] = 1 und dem ['GET']['page']-1. Das könnte ein nicht ausreichend daraufhin feingetunter "Bug" sein.yellowled wrote:Aber warum steigt die Pagination dabei aus?
Obwohl.., bei mir funktioniert es!
Regards,
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Re: „Verwirrte“ Suchfunktion?
Warum das bei mir funktionierte und bei dir nicht, hat mir ja keine Ruhe gelassen. Und wie es scheint ist es sehr gut, das ich meinen dev blog (zu Testzwecken) immer noch mit der alten "gespickten" 1.6 Series fahre. Das geht im Grunde zurück auf einen 4 Jahre alten Patch.
Ersetze mal in https://github.com/s9y/Serendipity/blob ... c.php#L890
mit der neuen Version
Wenn man den unten gelinkten Thread genau liest (eigentlich nur die letzten 3 posts), sieht man auch woher das kommt. Das ist eine wunderbare Verbesserung, im Übrigen durch dich selbst angeregt , die irgendwie bisher nicht ihren Weg in die commits gefunden hat. Ich hatte damit lokal herumgetestet und sie dann erfreulicherweise einfach gelassen. http://board.s9y.org/viewtopic.php?f=10&t=14810
Check das mal durch bevor wir das committen.
Ersetze mal in https://github.com/s9y/Serendipity/blob ... c.php#L890
Code: Select all
} else if (count($search) < 4){
return serendipity_searchEntries($term.'*', $orig_limit, $search);
}
Code: Select all
} else {
$ec = count($search);
$checkcount = 4;
if ($serendipity['fetchLimit'] < $checkcount) {
$checkcount = $serendipity['fetchLimit'];
}
if ($ec < $checkcount) {
return serendipity_searchEntries($term.'*', $orig_limit, $search);
}
}
Check das mal durch bevor wir das committen.
Regards,
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Re: „Verwirrte“ Suchfunktion?
Ich sehe dort zwar nicht, was ich damit zu tun habe, aber der Patch scheint zu funktionieren. Damit ergibt der Suchbegriff „Serendipity“:Timbalu wrote:Das ist eine wunderbare Verbesserung, im Übrigen durch dich selbst angeregt , die irgendwie bisher nicht ihren Weg in die commits gefunden hat.
* Die Suche nach "Serendipity" ergab 6 Treffer:
* Pagination funktioniert, ein Eintrag pro Seite
Superobergenau ausgetestet habe ich es natürlich jetzt auf die Schnelle nicht, aber das scheint mir “good to be committed”. Danke für's buddeln!
YL
Re: „Verwirrte“ Suchfunktion?
Du hattest wohl schon einmal irgendwie die hartkodierte 4 als nicht zutreffend beschrieben...
Committed!
Committed!
Regards,
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Re: „Verwirrte“ Suchfunktion?
Die Frage wäre ja, wie man elegant <* class="serendipity_*" *> und <!-- s9ymdb:* --> aus der Query mit ausklammern könnte. Hat da jemand eine Idee?
Code: Select all
if (strtolower($term) == 'serendipity' || strtolower($term) == 's9y*')
{ ...aber nicht in Form von (s.o.)... }
Regards,
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Re: „Verwirrte“ Suchfunktion?
Völlige Laienmeinung, aber das Einfachste wäre, wenn die Anfrage Markup komplett ignorieren und nur den Plain Text durchsuchen würde, aber das wird wohl kaum möglich sein, wenn man HTML in Einträgen schreibt oder einen WYSIWYG-Editor verwendet. (Nein, das ist kein Argument pro NL2BR! )Timbalu wrote:Hat da jemand eine Idee?
YL