PHP Doku:: Setzt die Parameter der aktuellen mnoGoSearch Session - function.udm-set-agent-param.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSuchmaschinenerweiterungenmnoGoSearchmnoGoSearch Funktionenudm_set_agent_param

Ein Service von Reinhard Neidl - Webprogrammierung.

mnoGoSearch Funktionen

<<udm_open_stored

Sphinx Client>>

udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_set_agent_paramSetzt die Parameter der aktuellen mnoGoSearch Session

Beschreibung

bool udm_set_agent_param ( resource $agent , int $var , string $val )

Deklariert mnoGoSearch Sessionparameter.

Parameter-Liste

agent

Verweis auf einen Agent, der durch udm_alloc_agent() geholt wurde.

var

Die folgenden Parameter und deren Werte sind erlaubt:

  • UDM_PARAM_PAGE_NUM - wird genutzt, um eine bestimmte Seite aus den Suchergebnissen auszuwählen. Ergebnissseiten werden von 0 an gezählt.
  • UDM_PARAM_PAGE_SIZE - Anzahl der Suchergebnisse, die pro Seite angezeigt werden.
  • UDM_PARAM_SEARCH_MODE - Suchmodus. Die folgenden Werte sind erlaubt: UDM_MODE_ALL - Logische UND-Verknüpfung; UDM_MODE_ANY - Logische ODER-Verknüpfung; UDM_MODE_BOOL - boolsche Suche. Siehe udm_find() für weitere Details zur boolschen Suche.
  • UDM_PARAM_CACHE_MODE - Schaltet den Ergebnis-Cache an oder aus. Falls eingeschaltet wird die Suchmaschine Suchergebnisse auf der Festplatte zwischenspeichern. Für den Fall, dass später eine ähnliche Suche durchgeführt wird, werden die Ergebnisse für ein schnelleres Ergebnis aus dem Cache gelesen. Werte: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.
  • UDM_PARAM_TRACK_MODE - schaltet den Trackquery-Modus an oder aus. Seit Version 3.1.12 von mnoGoSearch wird eine Verfolgung von Suchanfragen unterstützt. Um die Track-Funktion nutzen zu können, müssen zusätzliche SQL-Tabellen angelegt werden. Für MySQL liegen die Tabellenbeschreibungen in create/mysql/track.txt. Wird eine Suche durchgeführt, werden die Suchwörter in diesen Tabellen zusammen mit der Anzahl der gefundenen Dokumente und dem aktuellen Unix-Timestamp gespeichert. Verfügbare Werte: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.
  • UDM_PARAM_PHRASE_MODE - Gibt an, ob die Index-Datenbank eine Unterstützung für "Phrases" erlaubt. (Muß vor der Indizierung in der indexer.conf eingeschaltet werden. Mögliche Werte: UDM_PHRASE_ENABLED und UDM_PHRASE_DISABLED. Wird der Phrase-Modus verwendet, ist es natürlich nach wie vor möglich, alle anderen Suchmodi zu verwenden. Seit Version 3.1.11 wird auch der Cache-Modus zusammen mit dem Phrase-Modus unterstützt. Beispiele: "Arizona desert" - Diese Abfrage gibt alle Dokumente zurück, die "Arizona desert" als eine Zeichenkette enthalten. Für eine Suche nach kompletten Zeichenkette müssen diese in doppelte Anführungszeichen gesetzt werden.
  • UDM_PARAM_CHARSET - Legt einen lokalen Zeichensatz wie koi8-r, cp1252 fest.
  • UDM_PARAM_STOPFILE - Legt den Namen und den Pfad einer stopword-Datei fest. Auch hier wird nicht relativ zu UDM_CONF_DIR gesucht sondern relativ zu zu dem Pfad wo das aktuelle PHP-Script läuft.
  • UDM_PARAM_STOPTABLE - Lädt die stopwords aus der angegebenen SQL-Tabelle. Es können mehrere Stopwordtable-Kommandos verwendet werden.
  • UDM_PARAM_WEIGHT_FACTOR - Legt fest, wie bestimmte Teile eines Dokumentes zur Sortierung gewertet werden. Zur Zeit werden Body, Title, Keywords, Description und URL unterstützt. Um dieses Feature nutzen zu können, muss der Grad 2 in den *Weight-Anweisungen in der indexer.conf verwendet werden. Stellen wir uns vor, folgende Werte würden verwendet:
      URLWeight     1
      BodyWeight    2
      TitleWeight   4
      KeywordWeight 8
      DescWeight    16
         
    Solange der Indexer eine logische bit-ODER Operation verwendet, um das Gewicht einzelner Wörter festzulegen, wenn ein Wort mehrere Male im selben Dokument vorkommt, ist es möglich, zur Zeit der Suche festzustellen, welches Wort in welchem Teil des Dokumentes vorkommt. Wörter, die nur im Body auftauchen, haben das Gewicht 00000010 in binärer Notation. Wörter, die in allen Dokumententeilen vorkommen haben das Gewicht 00011111. Der Wert dieses Parameter ist ein String, bestehend aus den hexadezimalen Ziffern ABCDE. Jede Ziffer ist ein Faktor für das korrespondierende Bit. Für die oben angeführte Konfiguration zum Beispiel:
       E ist ein Faktor für das Gewicht 1  (URL Weight bit)
       D ist ein Faktor für das Gewicht 2  (BodyWeight bit)
       C ist ein Faktor für das Gewicht 4  (TitleWeight bit)
       B ist ein Faktor für das Gewicht 8  (KeywordWeight bit)
       A ist ein Faktor für das Gewicht 16 (DescWeight bit)
         
    Beispiele: UDM_PARAM_WEIGHT_FACTOR=00001 wird nur in URLs suchen. UDM_PARAM_WEIGHT_FACTOR=00100 wird nur in Titeln suchen. UDM_PARAM_WEIGHT_FACTOR=11100 wird in Titel, Keywords, Description aber nicht in URL und Body suchen. UDM_PARAM_WEIGHT_FACTOR=F9421 wird folgendermaßen Suchen und Werten:
        Beschreibung mit dem Faktor 15  (F hex)
        Keywords mit dem Faktor 9
        Title mit dem Faktor  4
        Body mit dem Faktor 2
        URL mit dem Faktor 1
         
    Wenn die Variable UDM_PARAM_WEIGHT_FACTOR übergeben wird, wird das Originalgewicht zur Sortierung verwendet.
  • UDM_PARAM_WORD_MATCH - Wortteilübereinstimmung. Dieser Parameter kann verwendet werden, um festzulegen, welcher Wortteil mit dem gesuchten Wort übereinstimmen muss. Dieses Feature funktioniert nur im "single" oder "multi"-Modus. Im Cachemode und in den CRC-Modi ist eine Verwendung nicht möglich. Erlaubt Werte: UDM_MATCH_BEGIN - Der Wortanfang muss übereinstimmen; UDM_MATCH_END - Das Wortende muss übereinstimmen; UDM_MATCH_WORD - Das gesamte Wort muss übereinstimmen; UDM_MATCH_SUBSTR - Teile des Wortes müssen übereinstimmen.
  • UDM_PARAM_MIN_WORD_LEN - Legt die mininmale Wortlänge fest. Jedes Wort, dass kürzer als die angegebene Länge ist, wird als stopword aufgefasst.
  • UDM_PARAM_ISPELL_PREFIXES - Mögliche Werte: UDM_PREFIXES_ENABLED und UDM_PREFIXES_DISABLED, die explizit die Verwendung von ISpell-Prefixen an- oder abschalten. Wird also zum Beispiel das Wort "tested" in einer Suchabfrage verwendet, werden auch Wörter wie "test" oder "testing" gefunden. Nur Endungen werden normalerweise Unterstützt. Prefixe verändern für gewöhnlich die Bedeutung von Wörtern. So werden bei einer Suche nach "tested" z.B. auch Dokumente gefunden, die das Wort "untested" enthalten. Um diese Funktion nutzen zu können, müssen vorher mittels udm_load_ispell_data() ISpell-Daten geladen werden.
  • UDM_PARAM_CROSS_WORDS - Aktiviert oder deaktiviert eine Unterstützung für Crosswords. Mögliche Werte: UDM_CROSS_WORDS_ENABLED und UDM_CROSS_WORDS_DISABLED. Das Crosswords-Feature erlaubt es, Wörter zwischen <a href="xxx"> und </a> dem Dokument zuzuordnen, zu dem dieser Link führt.

val

Changelog

Version Beschreibung
4.1.0 UDM_PARAM_VARDIR was added.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Anmerkungen

Hinweis: Crosswords are supported only in mnoGoSearch 3.1.11 or later.


3 BenutzerBeiträge:
- Beiträge aktualisieren...
ywarnier at beeznest dot org
13.05.2006 1:37
Other possible session parameters not documented but found in the default php frontend on http://www.mnogosearch.org:
UDM_PARAM_BROWSER_CHARSET - ?
UDM_PARAM_HLBEG - defines the tag to use before an highlighted search term
UDM_PARAM_HLBEG  - defines the tag to use after an highlighted search term
UDM_PARAM_QSTRING - defines the search term (or query string)
UDM_PARAM_REMOTE_ADDR - ?
UDM_PARAM_QUERY - ?
UDM_PARAM_STORED - ?
UDM_PARAM_GROUPBYSITE - toggles the "group by site" feature (UDM_ENABLED or UDM_DISABLED)
UDM_PARAM_SITEID - ?
UDM_PARAM_DETECT_CLONES - enable the "detect clone" feature (UDM_ENABLED or UDM_DISABLED)
adu at php dot net
21.12.2005 17:42
I found an undocumented function: udm_set_agent_param_ex
For example, if you want to sort results by date, do this:
udm_set_agent_param_ex($udm_agent, 's', 'DR');
See http://www.mnogosearch.org/doc/msearch-doingsearch.html for details
GneralTsao
18.07.2005 20:27
One useful parameter not documented above is UDM_PARAM_SYNONYM.  If you understand how this API works in general, you should be able to figure it out, but here goes anyway:

<?php
/* Make sure that PHP is able to find the file.  Unlike mnogosearch's indexer and search.cgi, it doesn't know the directory of the installation. */
$synFile="/usr/local/mnogosearch/etc/synonym/english.syn";
udm_set_agent_param($agent, UDM_PARAM_SYNONYM, $synFile);
?>

Piece of cake.

For more about mnogosearch's handling of synonyms see http://www.mnogosearch.org/doc/msearch-fuzzy.html#synonyms



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)