0

私はこのデータベーステーブルを持っています:

Column       Type

source       text            
news_id      int(12)             
heading      text            
body         text        
source_url   tinytext
time         timestamp
news_pic     char(100) 
location     char(128)
tags         text
time_created timestamp
hits         int(10)

今、ニュースデータを含むこのテーブルでキーワードの検索を実行するためのアルゴリズムまたはツールを探していました。キーワードは、見出し、本文、タグ、およびニュースのヒット数で検索して、最良の結果を得る必要があります。

4

1 に答える 1

3

MySQL には、必要なツールが組み込まれています: フルテキスト検索です。PHP を使用して MySQL を操作する方法を知っていることを前提としています。そうでない場合は、まずそれを調べてください。ともかく ...

1) 検索するフィールドに全文索引を追加します。

alter table TABLE_NAME add fulltext(heading);
alter table TABLE_NAME add fulltext(body);
alter table TABLE_NAME add fulltext(tags);

2)match ... againstステートメントを使用して全文検索を実行します。

select * from TABLE_NAME where match(heading, body, tags, hits) against ('SEARCH_STRING');

これらの例では、テーブルの名前を TABLE_NAME に、検索文字列を SEARCH_STRING に置き換えてください。

ヒット数は単なる整数であるため、ヒット数を検索する理由がわかりません。ただし、クエリに句を追加することで、ヒット数で並べ替えることができます。order

select * from TABLE_NAME where match(heading, body, tags, hits) against ('SEARCH_STRING') order by hits desc;
于 2012-11-21T23:59:46.733 に答える