Heim >Backend-Entwicklung >PHP-Problem >So implementieren Sie die Site-Suche in PHP
So implementieren Sie die On-Site-Suche in PHP: 1. Verwenden Sie SQL LIKE, um die On-Site-Suche zu implementieren. 2. Verwenden Sie die Google-Suchmaschinen-API und die Google-Suchfunktion, um die On-Site-Suche einzurichten „SCWS“ als On-Site-Suchmaschine.
Empfohlen: „PHP-Video-Tutorial“
PHP+MYSQL+SCWS Erstellen Sie Ihre eigene On-Site-Suchmaschine
Es gibt so eine On-Site-Suchmaschine auf der Welt, sie unterstützt Chinesisch Für die Wortsegmentierung und die Volltextsuche sind keine Erweiterungen oder Einstellungen auf dem Server erforderlich. Sie ist einfach zu bedienen, effizient und effektiv
Egal wie groß oder klein, von Sina bis Aika Automotive Network, von Websites mit über 100 Millionen PV bis zu meinem eigenen persönlichen Blog, alle brauchen On-Site-Suchmaschinen Für Websites ist es selbstverständlich, dass Benutzer auf dem direktesten und schnellsten Weg finden, was sie auf Ihrer Website suchen, anstatt nach Baidu und Google zu suchen. 1) Die einfachste On-Site-Suche verwendet SQLs LIKE 2. Wortsegmentierung ist nicht möglich. Wenn der Suchbegriff lang ist, wird er fast nicht gefunden entspricht der Verwendung mehrerer LIKEs in einem Satz, genau wie 1.
(2) Benutzerdefinierte Google-Suche
Verwenden Sie die Google-Suchmaschinen-API und die leistungsstarke Suchfunktion von Google, um Ihre eigene On-Site-Suche zu erstellen: http://www .lusongsong.com/search.html?cx=014724041144905348996:pf5fnahnzuw&cof=FORID:11&ie=UTF-8&q=crisis&sa=search &siteurl=lusongsong.com/
Vorteile: Sorgenfrei, es gibt nichts Sorgenfreieres als dies. Sie müssen sich um nichts kümmern. Wie können wir also einen Vergleich damit durchführen? 1. Sie müssen IFRAME verwenden oder die Google-Seite direkt öffnen oder eine komplexere API verwenden 2. Sie können nur nach Text suchen, und Sie können nur die gesamte Website durchsuchen. Ich möchte die Anforderungen für bestimmte Artikeltypen nicht umsetzen. 3. Wenn Ihre Website klein ist, wird Google Sie nicht einbeziehen und nichts finden? Schauen Sie sich zur Einführung einfach die Vor- und Nachteile an. Vorteile: vollständig offener Quellcode, vollständig anpassbar, vollständig ... Nachteile: in Java geschrieben Ja, ich weiß es nicht (4) PHP+MYSQL+SCWS Erstellen Sie Ihre eigene On-Site-Suchmaschine
Es wurde lange erwartet!
MySQL unterstützt die Volltextindizierung und -suche. Der Volltextindex in MySQL ist ein Index vom Typ FULLTEXT. FULLTEXT-Indizes werden für MyISAM-Tabellen verwendet und können zum Zeitpunkt von CREATE TABLE oder nach Verwendung von ALTER TABLE oder CREATE INDEX für CHAR-, VARCHAR- oder TEXT-Spalten erstellt werden.
Die Funktion MATCH() führt eine Suche in natürlicher Sprache nach einer Zeichenfolge anhand eines Textsatzes durch (ein Spaltensatz, der eine oder mehrere Spalten in einem FULLTEXT-Index enthält). Der Suchstring wird als Argument an AGAINST() übergeben. Bei der Suche wird die Groß-/Kleinschreibung der Buchstaben ignoriert. Für jede Datensatzzeile in der Tabelle gibt MATCH() einen Korrelationswert zurück. Das heißt, das Maß der Ähnlichkeit zwischen der Suchzeichenfolge und dem Text der Datensatzzeile in der in der MATCH()-Liste angegebenen Spalte.
Wenn MATCH() in einer WHERE-Klausel verwendet wird, werden die zurückgegebenen Zeilen automatisch von hoher zu niedriger Relevanz sortiert. Korrelationswerte sind nicht negative Gleitkommazahlen. Nullkorrelation bedeutet keine Ähnlichkeit.
In einer englischen Umgebung ist es durchaus möglich, eine Volltextsuchumgebung mit PHP und MYSQL einzurichten. Die Schritte sind:
1 Erstellen Sie eine Inhaltstabelle, geben Sie Daten ein und erstellen Sie einen VOLLTEXT-Index für die Felder Volltextsuche erforderlich
2. Verwenden Sie die Suchbedingungen für die Ausführung der MATCH-Funktion
3. Verarbeiten Sie die zurückgegebenen Daten und zeigen Sie die Ergebnisse an
Einfach. . .
Das Problem besteht darin, dass Chinesisch keine selbstsegmentierte Sprache ist. In MYSQL besteht ein großer Teil des Chinesischen nur aus einem Wort, und die Volltextsuche ist wirkungslos Daten und Suche. Führen Sie eine Wortsegmentierung durch und teilen Sie große chinesische Absätze nacheinander in Wörter auf. Das einfachste Tool ist die offizielle Website von SCWS: http://www.ftphp.com/scws/
SCWS Einfach Die Abkürzung für Chinese Words Segmentation, ein einfaches chinesisches Wortsegmentierungssystem.
Dies ist eine mechanische chinesische Wortsegmentierungsmaschine, die auf einem Worthäufigkeitswörterbuch basiert. Sie kann grundsätzlich einen ganzen Absatz chinesischer Schriftzeichen korrekt in Wörter segmentieren. Wörter sind die grundlegenden Morphemeinheiten des Chinesischen. Beim Schreiben werden Wörter durch Leerzeichen getrennt. Daher war es bei der chinesischen Wortsegmentierung schon immer ein schwieriges Problem.
SCWS 在概念上并无创新成分,采用的是自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集,经小范围测试大概准确率在 90% ~ 95% 之间,已能基本满足一些中小型搜索引擎、关键字提取等场合运用。 SCWS 采用纯 C 代码开发,以 Unix-Like OS 为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持 GBK,UTF-8,BIG5 等汉字编码,切词效率高。
SCWS提供了纯PHP代码编写的中文分词类,使它不需要做任何额外的扩展就能在机会所有的服务器上使用.
支持中文的基于PHP+MYSQL的全文检索的步骤为:
1. 建立内容表(,将数据分词),灌入数据,在需要全文检索的字段上建立FULLTEXT索引
2. (将要搜索的内容先分词再) 利用MATCH函数执行搜索条件
3. 处理返回的数据,显示结果
仍然是SO EASY!
一个演示的例子: http://www.bnet.com.cn/files/search.php?word=%CA%D5%B9%BA&page=3
执行搜索的语句是:
SELECT SQL_CALC_FOUND_ROWS *, MATCH (titlewords, keywords, author, contentwords) AGAINST ('$words') AS matchscore FROM search WHERE MATCH (titlewords, keywords, author, contentwords) AGAINST ('$words') > 0.5
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Site-Suche in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!