2

私はいくつかの機能を実装する必要がある検索を構築しています。

1- 誰かがソファを検索した場合など、すべての同義語が表示される必要があります。そのソファに一致する結果と、言語の一致 (ソファ、クッションなど) が表示される必要があります。それを達成するために、全文検索を使用しています。

私のクエリでは FreeText を使用していますが、必要な結果が得られません。それが私がすることです、

select * from Furn_Products Where FreeText(FurnName, 'Couch');

もちろん、クッション、ソファ、カウチを含む名前を表示する必要がありますが、カウチを含む名前のみを表示します。これは、単純な Like クエリでも実行できます。解決策はありますか?

2-タイプミスをチェックする必要があります。たとえば、誰かが入力した場合soofa、ソファ、カウチなどの結果が表示されるはずです。

これを達成するためのヒントやアイデアはありますか? 前もって感謝します。

4

3 に答える 3

1

私も Nelson に同意します。オープンソースの検索エンジンはすでにたくさんあり、それらは多くのデバッグを経ています。最大のものは、Lucene/Solr、Sphinx、および Xapian です。

また、同義語展開を追加するときは注意してください。たとえば、paddleをbatに展開すると、望まない動物学的結果が多数得られる可能性があります。自動クエリを実行している場合。いくつかの例を見つけて、コーナー ケースを含むテスト スイートをセットアップします。人間のユーザーがいると予想される場合は、プロセスを順を追って説明してテスト スイートの作成を手伝ってくれるカップルを見つけて、検索ログに非常に慣れるように計画してください。頑張ってください!

于 2010-12-07T22:50:03.830 に答える
0

私の知る限り、全文検索では可能なすべての単語 (ステミングなど) にアクセスできるわけではありません。しかし、SQL Server 2008 以降では、すべてのインデックス付き単語のリストを取得できます。

より多くの機能については、おそらく Lucene のようなサードパーティのインデクサーを使用する必要があります。

于 2010-12-07T21:09:22.077 に答える
0

シソーラスを構成することにより、一致を明示的に定義できます。

于 2010-12-07T23:55:25.060 に答える