2012-04-06 14 views

cevap

5

GÜNCELLEME "Her şey mümkün" => 2 maç

"Bu nasıl mümkün olduğunu bilmek istiyorum" garip bi önerim var

aşağı benim orijinal cevap

Sen m kullanmanız gerekebilir ysql yarar bir metin dosyası olarak üretebilir varsa, PHP olabilir

C:\MySQL_5.5.12\data\sandro>myisam_ftdump -vc txtdata 1 
     2   0.4054651 everyhing 
     2   0.4054651 impossible 
     1   1.3862944 knew 
     3   -0.4054651 know 
     2   0.4054651 nothing 
     1   1.3862944 people 
     2   0.4054651 possible 
     1   1.3862944 probable 
     1   1.3862944 something 

İşte

myisam_ftdump Aradığınız kelime için bunu ayrıştırmak orijinal cevap örnekten bir fulltext dökümü olarak adlandırılan .

ORİJİNAL CEVAP ile veya MANTIKSAL MODE olmadan

, cevap hayır. çeşitli arama sıralamalarında

mysql> SELECT *,MATCH(txt) AGAINST ('possible knew') as score FROM txtdata; 
+----+--------------------------------------+--------------------+ 
| id | txt         | score    | 
+----+--------------------------------------+--------------------+ 
| 1 | I know Nothing is possible   | 0.3919430673122406 | 
| 2 | We know nothing is impossible  |     0 | 
| 3 | I knew everyhing is possible   | 1.73200523853302 | 
| 4 | We know everyhing is impossible  |     0 | 
| 5 | For may people something is probable |     0 | 
+----+--------------------------------------+--------------------+ 
5 rows in set (0.00 sec) 

mysql> SELECT *,MATCH(txt) AGAINST ('possible know') as score FROM txtdata; 
+----+--------------------------------------+--------------------+ 
| id | txt         | score    | 
+----+--------------------------------------+--------------------+ 
| 1 | I know Nothing is possible   | 0.3919430673122406 | 
| 2 | We know nothing is impossible  |     0 | 
| 3 | I knew everyhing is possible   | 0.3919430673122406 | 
| 4 | We know everyhing is impossible  |     0 | 
| 5 | For may people something is probable |     0 | 
+----+--------------------------------------+--------------------+ 
5 rows in set (0.00 sec) 

mysql> SELECT *,MATCH(txt) AGAINST ('impossible knew') as score FROM txtdata; 
+----+--------------------------------------+--------------------+ 
| id | txt         | score    | 
+----+--------------------------------------+--------------------+ 
| 1 | I know Nothing is possible   |     0 | 
| 2 | We know nothing is impossible  | 0.3919430673122406 | 
| 3 | I knew everyhing is possible   | 1.340062141418457 | 
| 4 | We know everyhing is impossible  | 0.3919430673122406 | 
| 5 | For may people something is probable |     0 | 
+----+--------------------------------------+--------------------+ 
5 rows in set (0.00 sec) 

mysql> SELECT *,MATCH(txt) AGAINST ('impossible know') as score FROM txtdata; 
+----+--------------------------------------+--------------------+ 
| id | txt         | score    | 
+----+--------------------------------------+--------------------+ 
| 1 | I know Nothing is possible   |     0 | 
| 2 | We know nothing is impossible  | 0.3919430673122406 | 
| 3 | I knew everyhing is possible   |     0 | 
| 4 | We know everyhing is impossible  | 0.3919430673122406 | 
| 5 | For may people something is probable |     0 | 
+----+--------------------------------------+--------------------+ 
5 rows in set (0.00 sec) 

mysql> 
+0

sonucunu

NUMUNE VERİ İşte

DROP DATABASE sandro; CREATE DATABASE sandro; use sandro CREATE TABLE txtdata ( id int not null auto_increment, txt VARCHAR(255), primary key (id), FULLTEXT (txt) ) ENGINE=MyISAM; INSERT INTO txtdata (txt) VALUES ('I know Nothing is possible'), ('We know nothing is impossible'), ('I knew everyhing is possible'), ('We know everyhing is possible'), ('For may people something is probable'); 

aşağıdaki gibidir:

Ancak, kelime oluşumu ve genel dize uzunluğuna bağlı sıralamasını gösterebilir Sorun şu ki skor normalleştirilmeli ve bana göre imkansız görünüyor çünkü satırların sayısına ve diğer faktörlere göre tamamen dinamik. Sanırım PHP'de istediğimi yapmak zorundayım o zaman? –

+0

ve bu sayım dosyalarını saymak için nasıl kullanılır? Yani sonuçların satırlarına bağlı göremiyorum –