0

Sql Server 2008 テーブルの 1 つに全文検索を実装しました。結果を取得し、ランクに基づいてソートするために、containstable クエリを使用しています。

SELECT Ad_text.*, k.rank
FROM Ad_text
INNER JOIN CONTAINSTABLE(Ad_text, text, 'Wanted or Engineers or bride') k
ON Ad_text.id = k.[KEY] order by rank desc

クエリが結果を返すと、これらの単語の頻度が高い行を上位にランク付けしますが、これらの単語をすべて含む行を上位にランク付けしたいのです。

同様のクエリは、この方法で結果を返します

  1. ウォンテッド ウォンテッド ウォンテッド グルーム (ランク 200)
  2. エンジニア募集 (ランク 180)
  3. エンジニアの花嫁募集ランク(190)

3番目のランクを高くしたいのですが。繰り返しのテキストの重みを増やさないという内容はありますか。

4

2 に答える 2

0

FreeTextSearch とそのレコード数機能を使用した回避策が見つかりました。目的を解決します

于 2012-05-16T04:46:03.897 に答える
0

ほとんどの検索エンジン向けサイトは使用されていますFULL-TEXT-SEARCHselectandに比べて非常に高速LIKEです... 1つの例といくつかのリンクを追加しました...あなたにとって役立つと思います...この全文検索にはいくつかの条件もあります...

ステップ1

CREATE TABLE articles (
    id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
    title VARCHAR(200),
    body TEXT,
    FULLTEXT (title,body)
);

ステップ2

INSERT INTO articles (title,body) VALUES
    ('MySQL Tutorial','DBMS stands for DataBase ...'),
    ('How To Use MySQL Well','After you went through a ...'),
    ('Optimizing MySQL','In this tutorial we will show ...'),
    ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
    ('MySQL vs. YourSQL','In the following database comparison ...'),
    ('MySQL Security','When configured properly, MySQL ...');

STEP:3
自然言語全文検索:

SELECT * FROM articles
    WHERE MATCH (title,body) AGAINST ('database');

ブール全文検索

SELECT * FROM articles WHERE MATCH (title,body)
     AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);

このリンクを 参照してください viruspatel.netdevzone.zend.comsqlmag.comcolorado.eduen.wikipedia.org

于 2013-03-08T06:23:52.463 に答える