1

私が定義した同義語を使用して、ユーザーが約 200 語を検索できるようにする簡単なツールを作成しようとしています。

例:セット内の単語は"fire"です。ユーザーはfireflameflames、 match などを検索できます(私はこれらを入れました)...そして"fire"を返します。

最初の考え:私がすぐに考えたのは、最初の列が実際の単語で、2 番目の列が適切な同義語である 2 列の表を作成することでした。

ACTUAL             SYNONYM
fire               flame
fire               flames
fire               matches

したがって、ユーザーが検索するときは、単純な選択を行います。

SELECT actual WHERE synonym = "THE SEARCH TERM"

質問:これらの単語を検索し、類義語に関連付けるためにデータベースをどのように設定すればよいですか? 私が提案したソリューションは、最善/最も効率的な方法ですか? 「実際の」ごとに 1 つの行を持ち、2 番目の列にすべての類義語を入れることができるはずだと思いますが、この 2 番目の列をどのように検索するか、またはより効率的かどうかはわかりません。単純なリストです。

4

1 に答える 1

1

シノニムがそれぞれ正確に 1 つの「実際の」またはコア ワードにマップされている限り、問題はありません。それならただ

select ACTUAL from Your_Table where SYNONYM = "The_Search_Term"

ゼロまたは 1 つのレコードが返されます。

同義語が十分に異なる場合は、代わりに句を使用するlike場合があるため、複数形をいじる必要はありません。

select ACTUAL from Your_Table where SYNONYM like "%The_Search_Term%"

そうすれば、flameflames;の両方を含める必要はありません。flame両方で機能します。

于 2013-10-30T02:32:02.383 に答える