4

全文検索インデックスを持つ SQL Server 2008 にデータベースがあります。ストップリストでストップワード「al」を定義しました。ただし、キーワード「al」を使用して任意のフレーズを検索すると、「al」という単語は依然としてランキングに使用されます。

これは、検索用語を分解して再構築しているという事実に関連している可能性があります。次に、複数のフィールドを検索して結果をランク付けしています: http://pastebin.com/fdce11ff。これは検索を分割する機能です

'al hamra' 

の中へ

("*al*" ~ "*hamra*") OR ("*al*" OR "*hamra*") 

全文検索用。

次のシナリオを想像してください。

名前:アル・ハムラ、作者:ジャック・ブラウン、ジャンル:フィクション・アル・カラワン、作者:アル・ハンツ、ジャンル:ロマンス

これで、「al hamra」を検索すると、 「al」がストップリストにあるにもかかわらず、「Al Karawan」が返されます。どうしてこれなの?ストップリストが単語の重みを失うと思いましたか?

4

1 に答える 1

1

ノイズ ワードはコード ページに固有です。正しいものに追加しましたか?sys.dm_fts_parserを使用してテストすることもできます (以下)。これは、コード内で手動で単語を区切る (またはしない) よりもうまく機能する可能性があります。

SELECT special_term, display_term
FROM sys.dm_fts_parser
  (' "al hamra" ', 1033, 0, 0)

コード ページ 1033 を使用していると仮定します。ノイズ ワードが期待するコード ページ内にある場合は、リストにノイズ ワードとして表示されるはずです。

于 2009-12-09T18:37:04.603 に答える