SUche + LiveSearch
Re: SUche + LiveSearch
Ok. Wenn man mit dieser Indexabbildung arbeiten kann ist das von Vorteil.
Gruß
Gruß
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: SUche + LiveSearch
Hi!
Hättest Du vielleicht Lust+Zeit den kompletten Patch nochmal mit der neuen Methode zu machen? Und dann hier im Board am besten die komplette plugins_internal.inc.php attachen, dann kann ich das committen?
Dank&Gruß,
Garvin
Hättest Du vielleicht Lust+Zeit den kompletten Patch nochmal mit der neuen Methode zu machen? Und dann hier im Board am besten die komplette plugins_internal.inc.php attachen, dann kann ich das committen?
Dank&Gruß,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Re: SUche + LiveSearch
Ja, allerdings kann ich das gerade nicht testen. Unter dem Vorbehalt also, dass ich die Indexabbildung ausbaldowern kann. Aber wahrscheinlich funktioniert dein Code so.
Gruß
Gruß
Re: SUche + LiveSearch
So, klappt.
Datei hochladen würde ich auch machen, leider bekomme ich dann einen connection-interrupted-Fehler.
Code: Select all
diff -Nur serendipity-nightly/include/functions_entries.inc.php /var/www/include/functions_entries.inc.php
--- serendipity-nightly/include/functions_entries.inc.php 2008-12-09 11:05:33.000000000 +0100
+++ /var/www/include/functions_entries.inc.php 2009-02-27 14:05:50.000000000 +0100
@@ -722,11 +722,13 @@
* @access public
* @param string The searchterm (may contain wildcards)
* @param int Restrict the number of results [also uses $serendipity['GET']['page'] for pagination]
+ * @param array Add search Results at the top
* @return array Returns the superarray of entries found
*/
-function &serendipity_searchEntries($term, $limit = '') {
+function &serendipity_searchEntries($term, $limit = '', $searchresults = '') {
global $serendipity;
+ $orig_limit = $limit;
if ($limit == '') {
$limit = $serendipity['fetchLimit'];
}
@@ -817,10 +819,35 @@
$search =& serendipity_db_query($querystring);
- if (is_array($search)) {
+ //Add param searchresults at the top and remove duplicates.
+ if (is_array($searchresults)) {
+ $ids_current = array();
+ foreach($searchresults AS $idx => $data) {
+ $ids_current[$data['id']] = true;
+ }
+
+ foreach($search AS $idx => $data) {
+ if (isset($ids_current[$data['id']])) {
+ unset($search[$idx]);
+ }
+ }
+ $search = array_merge($searchresults, $search);
+ }
+
+ //if * wasn't already appended and if there are none or not enough
+ //results, search again for entries containing the searchterm as a part
+ if (strpos($term, '*') === false) {
+ if (! is_array($search)) {
+ return serendipity_searchEntries($term.'*', $orig_limit);
+ }else if (count($search) < 4){
+ return serendipity_searchEntries($term.'*', $orig_limit, $search);
+ }
+ }
+
+ if (is_array($search)){
serendipity_fetchEntryData($search);
}
-
+
return $search;
}
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: SUche + LiveSearch
Hi!
Gibt es einen speziellen GRund warum du $orig_limit benutzt?
Gräße,
Garvin
Gibt es einen speziellen GRund warum du $orig_limit benutzt?
Gräße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Re: SUche + LiveSearch
Ja. limit wird im Laufe der Funktion neu belegt. Gibt man dann einfach das weiter funktioniert der zweite Durchgang nicht.
Re: SUche + LiveSearch
Hi Garvin
Ich möchte keine Hektik verbreiten. Nur fragen, ob noch was fehlt.
Gruß
Ich möchte keine Hektik verbreiten. Nur fragen, ob noch was fehlt.
Gruß
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: SUche + LiveSearch
Hi!
Ah, ganz vergessen. Könntest Du den patch evtl jetzt nochmal versuchen zu attachen (hab in den foreneinstellungen auch plaintext zugelassen)? Dann kann ich das ganze leichter per wget auf meinen server ziehen, per copy+paste ist das hier remote alles etwas frickelig.
Danke,
Garvin
Ah, ganz vergessen. Könntest Du den patch evtl jetzt nochmal versuchen zu attachen (hab in den foreneinstellungen auch plaintext zugelassen)? Dann kann ich das ganze leichter per wget auf meinen server ziehen, per copy+paste ist das hier remote alles etwas frickelig.
Danke,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Re: SUche + LiveSearch
Tut mir Leid. Ich bekomme da immer noch einen "connections interrupted"-Fehler. Aber das geht ja auch anders: http://www.onli-blogging.de/uploads/fun ... ntries.txt .
Gruß
Gruß
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: SUche + LiveSearch
Hi!
Ich hab den Code nochmal gelesen, kann es sein dass wenn man eine Suche bereits mit "*" durchführt, es keine Suchergebnisse gibt weil $search nirgendwo belegt wird? Denn beim ersten Aufruf ist $searchresults ja auch noch nich belegt, und er springt nirgendwo in einen der IF-Teile...?!
Grüße,
Garvin
Ich hab den Code nochmal gelesen, kann es sein dass wenn man eine Suche bereits mit "*" durchführt, es keine Suchergebnisse gibt weil $search nirgendwo belegt wird? Denn beim ersten Aufruf ist $searchresults ja auch noch nich belegt, und er springt nirgendwo in einen der IF-Teile...?!
Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Re: SUche + LiveSearch
Vorab: Finde es gut, dass du den Code so überprüfst.
Die Variablenbenennung ist suboptimal. $search wird immer auf jeden Fall belegt, in $search wird das Ergebnis der Datenbankabfrage gespeichert: '$search =& serendipity_db_query($querystring);'
Wenn der Suchbegriff ein * enthält, wird (strpos($term, '*') === false) falsch, die Suche also nicht nochmal angeschmissen. Mehr ändert sich nicht.
$searchresult muss davon unabhängig betrachtet werden. Es ist ein Array, dessen Inhalt vorne an die Suchergebnisliste "$search" angefügt wird, Doppler in $search entfernt. Die Initialbelegung von $search ist davon unabhängig.
Also: Wenn ich nach tes* suche, findet er genau so viele Treffer, wie wenn ich nach test suche.
Gruß
Die Variablenbenennung ist suboptimal. $search wird immer auf jeden Fall belegt, in $search wird das Ergebnis der Datenbankabfrage gespeichert: '$search =& serendipity_db_query($querystring);'
Wenn der Suchbegriff ein * enthält, wird (strpos($term, '*') === false) falsch, die Suche also nicht nochmal angeschmissen. Mehr ändert sich nicht.
$searchresult muss davon unabhängig betrachtet werden. Es ist ein Array, dessen Inhalt vorne an die Suchergebnisliste "$search" angefügt wird, Doppler in $search entfernt. Die Initialbelegung von $search ist davon unabhängig.
Also: Wenn ich nach tes* suche, findet er genau so viele Treffer, wie wenn ich nach test suche.
Gruß
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: SUche + LiveSearch
Hi!
Ach mist. Ich hab den ganzen Anfang der funktion übersehen im Diff-Format. Entschuldigung für die unnötige Nachfrage, aber wie Du schon sagst - besser einmal zu oft als zu wenig gefragt![Smile :-)](./images/smilies/icon_smile.gif)
Haben deinen Patch gerade eingestellt!
Grüße,
Garvin
Ach mist. Ich hab den ganzen Anfang der funktion übersehen im Diff-Format. Entschuldigung für die unnötige Nachfrage, aber wie Du schon sagst - besser einmal zu oft als zu wenig gefragt
![Smile :-)](./images/smilies/icon_smile.gif)
Haben deinen Patch gerade eingestellt!
Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Re: SUche + LiveSearch
... und was muss ich jetzt tun, damit ich in den Genuß der erweiterten Such - Funktionalität komme ?garvinhicking wrote:Hi!
Ach mist. Ich hab den ganzen Anfang der funktion übersehen im Diff-Format. Entschuldigung für die unnötige Nachfrage, aber wie Du schon sagst - besser einmal zu oft als zu wenig gefragt
Haben deinen Patch gerade eingestellt!
Grüße,
Garvin
lg serels
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: SUche + LiveSearch
Hi!
Dort hat sich auch am Loginmanagement etwas getan, daher solltest du die Snapshots eher nur einsetzen wenn Du vorher ein Backup machst.![Smile :-)](./images/smilies/icon_smile.gif)
Grüße,
Garvin
Entweder indem Du den Patch manuell in deine Datei include/functions_entries.inc.php einspielst - wenn Dir das zu hakelig ist oder das KnowHow fehlt, musst Du entweder auf die Veröffentlichung von Serendipity 1.5 warten (das könnte jedoch noch mehrere Wochen dauern) oder Du müsstest auf den aktuellen Serendipity Snapshot von 1.5-alpha aktualisieren.... und was muss ich jetzt tun, damit ich in den Genuß der erweiterten Such - Funktionalität komme ?
Dort hat sich auch am Loginmanagement etwas getan, daher solltest du die Snapshots eher nur einsetzen wenn Du vorher ein Backup machst.
![Smile :-)](./images/smilies/icon_smile.gif)
Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Re: SUche + LiveSearch
Hi Garvingarvinhicking wrote:Hi!
Entweder indem Du den Patch manuell in deine Datei include/functions_entries.inc.php einspielst - wenn Dir das zu hakelig ist oder das KnowHow fehlt, musst Du entweder auf die Veröffentlichung von Serendipity 1.5 warten (das könnte jedoch noch mehrere Wochen dauern) oder Du müsstest auf den aktuellen Serendipity Snapshot von 1.5-alpha aktualisieren.... und was muss ich jetzt tun, damit ich in den Genuß der erweiterten Such - Funktionalität komme ?
Dort hat sich auch am Loginmanagement etwas getan, daher solltest du die Snapshots eher nur einsetzen wenn Du vorher ein Backup machst.
Grüße,
Garvin
Mal sehen ...
Wo finde ich den Patch und an welcher Stelle der Datei paste ich den code hinein ?
lg
serels