EntityFrameworkで全文検索を実装しようとしています。LINQとEFでフルテキスト検索を使用する
My DBにはUsersというテーブルとUserInfoEntriesというテーブルがあります。テーブルユーザは他のいくつかのテーブルに接続され、テーブルUserInfoEntriesにはユーザ情報が含まれます。
私はユーザー情報を取得したいときは、User.UserInfoEntries
のエントリを通過し、最も古いエントリタイムスタンプを持つエントリを取得します。
フルテキスト検索のキーとして使用するプロパティは、UserInfoEntry内のFullNameプロパティです。正確なフルネームでユーザーを取得するための
LINQは、次のようになります。
from user in objectContext.Users
let currentInfoEntry =
(from entry in user.UserInfoEntries
orderby entry.EntryTimestamp descending
select entry
).FirstOrDefault()
where currentInfoEntry.FullName == "Some Name"
select new UserWithInfo
{
User = user,
Info = currentInfoEntry
}
私はフルネームでフルテキスト検索を使用したいと思います。クエリをSQLにトランスレートするより簡単な方法はありますか?
ミスして申し訳ありませんが、私はこの場合フルテキスト検索を実行する方法が不思議でした。言い換えれば、FTSを使ってある名前のユーザーを見つける方法。 (キーワードマットの場合、matt、matthewなどの名前のユーザーをすべて取得したいと考えています)。 – mtomic