-1

検索のデザインを考えなければなりません。検索されたデータは文書型ではありません。検索対象のデータ実体は、基本的に医療処置であり、それぞれ 1/2/3 単語で構成されます。単語は管理者によって事前に定義されています。例:血管形成術、鼻形成術、副腎手術、ACTH模擬試験など

エンド ユーザーが選択からプロシージャ名を選択すると、ユーザーの選択が db に格納されます。エンド ユーザーとは、自分のプロファイルを作成しているユーザーを指します。

ユーザー ID を使用して別のテーブルでキーワードにインデックスを付けます。したがって、Rhinoplasty の場合、3 人のユーザーが追加した場合、インデックス テーブルに 3 つのエントリが作成されます。他の手順についても同様です。

手続き名 | ユーザーID|
-------------------------
鼻形成術 1
鼻形成術 2
鼻形成術 3
副腎手術 2
副腎手術 3
血管形成術 1

等々 。

問題は、一部のユーザーが手順を検索しようとしたときに発生します (プロファイルに移動します)。ユーザーは、「副腎手術」を「副腎手術」、「血管形成術」を「血管形成術」、「ACTH シミュレーション テスト」を「シミュレーション」と書く場合があります。 ACTH' をテストします。場合によっては、手順に同義語/頭字語も含まれる場合があります。

ストップワードの概念を理解しています。その下に「手術」や「検査」などの一般的な単語を定義できます。インデックス テーブルからこれらのストップ ワードを削除し、検索クエリも削除します。

同義語を実装するにはどうすればよいですか? また、このような検索を実装するより良い方法はありますか? lucene や solr は全文検索エンジンであるため、見ることができないと思います。

4

2 に答える 2

2

ある種の全文検索ソリューションが必要なようです。solrまたは少し軽量なsphinxを見てください。

あいまい一致のみの場合は、データベース システムに組み込まれているフルテキスト インデックスも使用できます。mysql と progresql の両方1を備えています。Postgres は同義語の辞書もサポートしています。

于 2012-08-31T12:10:59.177 に答える
0
Try using using like clause in your query
 SELECT * from TABLENAME WHERE Procedure Name like "%Surgery Adrenal%";
于 2012-08-31T12:05:57.783 に答える