Oracleでファジーな名前検索を行うにはどうすればよいでしょうか。
例えば:
私たちのデータシステムには、次のような優先郵送があります。
ニコラス・ジム・ローリー氏
しかし、Facebookやその他の検索フィールドでは、アルゴリズムに渡される名前は次のとおりです。
ニックジムローリー
このプロセスでは、すべての優先名に対して検索名を実行し、最も一致する文字を含む結果を返します。
[ニック]オラス・ジム・ラリー氏
[ニック]kジムローリー
検索した名前の17文字のうち16文字が優先名に表示され、ランク付けされた提案を返すことができました。
[追加するために編集]
最初の提案とOracleのテキストクエリオプションの読み取りの後、テーブルにインデックスを作成しました
create index ADD_EX_INDX3 on address_extract(pref_mail_name)
indextype is ctxsys.context
parameters ('DATASTORE CTXSYS.DEFAULT_DATASTORE');
そして今、首尾よく引退することができます
select score(1), ae.pref_mail_name
from address_extract ae
where contains(pref_mail_name,'fuzzy(raleigh,,,weight)',1) > 0
order by score(1) desck
どちらが
100 Mr. Raleigh H. Jameson
100 Mr. Nicolas Jim Raleigh
100 Ms. Susanne M. Raleigh
66 Mrs. LaReign Smith
66 Ms. Rahil Smith
62 Mr. Smith Ragalie
しかし、私はフルネームの検索に苦労しています。フルネームをどうやってやるの?