[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
search_index - Suche eingrenzen - REDAXO Forum
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/
muero-gbr
Beiträge: 34
Registriert: 27. Feb 2006, 19:04

search_index - Suche eingrenzen

22. Mai 2006, 20:52

Hallo

Ist es möglich eine oder mehrere Kategorieen von der Suche auszuschließen?
Hat da jemand vielleicht eine Lösung?

Gruß
Thomas

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

22. Mai 2006, 20:54

Hi Thomas,

bitte die Boardsuche verwenden..

Ich habe bereits in anderen Threads daraufhin gewiesen, wie man den SQL beim erstellen des SuchIndexes einschränken kann.

Gruß,
Markus

muero-gbr
Beiträge: 34
Registriert: 27. Feb 2006, 19:04

22. Mai 2006, 21:26

Hi Markus

Hatte die Boardsuche bereits genutzt und kann mit folgenden Zeilen nicht viel anfangen.

//$search->custom_where_conditions = ' AND article_id not in (20)'; // Beliebige eigene SQL WHERE Bedingung

Wenn ich diese Zeile nehme gibts keine Suchtreffer mehr.
Was genau muss die runde Klammer enthalten? Article_id oder Kategorie?
Wie könnte in meinem Fall eine SQL WHERE Bedingung aussehen?
Sorry, ich kenne mich in SQL gar nicht aus.

Gruß Thomas

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

22. Mai 2006, 21:31

Hi Thomas,

du hast folgende Optionen:

Kategorie 4,5,7 kommen nicht in den index:

Code: Alles auswählen

AND path not like '|%4%|'
AND path not like '|%5%|'
AND path not like '|%6%|'
Artikel 66, 4, 15 kommen nicht in den index:

Code: Alles auswählen

AND article_id not in (66,4,15)
Oder auch kombinationen aus beidem...

Gruß,
Markus

muero-gbr
Beiträge: 34
Registriert: 27. Feb 2006, 19:04

22. Mai 2006, 21:56

Hallo Markus

Hab jetzt folgendes im Suchmodul stehen:

Code: Alles auswählen

$search->custom_where_conditions = ' AND path not like '|%20%|' '; 
Folgender Fehlerhinweis kommt:
Parse error: syntax error, unexpected '%' in /kunden/126205_56329/webseiten/burg32/redaxo/include/classes/class.article.inc.php(179) : eval()'d code on line 10

Wenn ich das % weglasse, erscheint kein Fehler, allerdings auch keine Suchtreffer.

Hinweis: Ich hab gerade noch mal die neuste Version von search_index aus dem cvs geladen.

Was mache ich mit dem %-Zeichen?

Gruß
Thomas

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

22. Mai 2006, 22:00

Hi Thomas,

es muss so heissen

Code: Alles auswählen

$search->custom_where_conditions = " AND path not like '|%20%|' "; 
Gruß,
Markus

muero-gbr
Beiträge: 34
Registriert: 27. Feb 2006, 19:04

22. Mai 2006, 22:04

Danke Markus
Funktioniert jetzt! :lol:

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

22. Mai 2006, 22:41

Hej,

besser wäre

Code: Alles auswählen

$search->custom_where_conditions = " AND path not like '%|20|%' ";
vg Thomas

muero-gbr
Beiträge: 34
Registriert: 27. Feb 2006, 19:04

22. Mai 2006, 23:44

Hi Thomas

ist geändert!

Gruß
Thomas

Torment0r
Beiträge: 39
Registriert: 8. Aug 2006, 17:48

22. Jan 2007, 22:23

Hallo,

leider gleiches Problem:

Code: Alles auswählen

$search->custom_where_conditions = ' AND article_id not in (892,901)';
führt zu "nichts gefunden".

Suchindex wurde erneuert.

Kann man evtl. auch ein bestimmtes Wort ausgrenzen?

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

23. Jan 2007, 08:14

Hi,

hast du mal geschaut, ob der generierte SQL valide ist, bzw. überhaupt Zeilen enthält..?

Gruß,
Markus

Torment0r
Beiträge: 39
Registriert: 8. Aug 2006, 17:48

23. Jan 2007, 15:16

kills hat geschrieben:Hi,

hast du mal geschaut, ob der generierte SQL valide ist, bzw. überhaupt Zeilen enthält..?

Gruß,
Markus
Ich dachte, nachdem das Problem hier schon mehrfach aufgetaucht ist, liegt es vielleicht am Script :)

Wie kann ich sehen, ob der generierte SQL valide ist?

Danke und Gruß

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

23. Jan 2007, 20:43

Hej,
Torment0r hat geschrieben:Wie kann ich sehen, ob der generierte SQL valide ist?
Das debug einsetzen.

beim indexieren:
$db = sql();
$db->debugsql = true;

bei der suchanfrage:
$suche = new sql();
$suche->debugsql = true;

vg Thomas

Torment0r
Beiträge: 39
Registriert: 8. Aug 2006, 17:48

23. Jan 2007, 22:04

also da kommt beim indexieren:

Code: Alles auswählen

TRUNCATE TABLE rex_12_search_index
Query: SELECT id,path,clang,status,online_from,online_to,keywords,name FROM rex_article
Affected Rows: 1838
und bei der suchausgabe:

Code: Alles auswählen

Query: SELECT (FIND_IN_SET('bliesk',REPLACE(name,' ',',')) * 10000) + (FIND_IN_SET('bliesk',REPLACE(keywords,' ',',')) * 5) + (FIND_IN_SET('bliesk',REPLACE(id,' ',',')) * 10000000) + (FIND_IN_SET('bliesk',REPLACE(content,' ',',')) * 5) AS COUNTWORD, id , name , content , clang FROM rex_12_search_index WHERE ( name LIKE ('%bliesk%') OR keywords LIKE ('%bliesk%') OR id = 'bliesk' OR content LIKE ('%bliesk%') ) AND status='1' AND article_id not in (892,901) ORDER BY COUNTWORD DESC LIMIT 0,50
Error Message: Unknown column 'article_id' in 'where clause'
Error Code: 1054
oh ich glaube ich sehe schon woran es liegt: es muß nur id statt article_id heißen.

Cool wäre es jetzt noch, wenn man bestimmte Wörter ausschließen könnte 8)

Zurück zu „Allgemeines [R3]“