0

私のプログラムでは、SQLサーバでフルテキスト検索を使用して自分のプログラムで同時に検索してフィルタリングしたいときに100.000レコードのデータベースがあります。私が使用するライブラリの 名前は「Fissoft.EntityFramework.Fts」エンティティフレームワークのフルテキスト検索の使用でnullを返します

var text = FullTextSearchModelUtil.FreeText("searched text", true); 
      var query = db.Mainindustapp.Where(c => c.UnitName.Contains(text)).ToList(); 
      return query.ToList(); 

ですが、私はそれが応答するSQLサーバーに直接全文検索コードを送信するとき。以下のコードは私が言ったことです:

Mainindustapp = db.Mainindustapp.SqlQuery 
      ("SELECT * FROM[DB_industapp].[dbo].[Mainindustapps] WHERE FREETEXT(([UnitName], [Product]), @p0)", SearchString); 

と私は、カタログがSQLサーバーで有効になっていることを述べる必要があります。

+0

あなたが唯一のLINQ/EF経由 'UnitName'を探しますが、'されていますUnitName' ** OR ** ** Sql経由でクエリを実行するときの 'Product'。 [デモ](https://github.com/fissoft/Fissoft.EntityFramework.Fts/blob/master/README)で提案されているように、既に '.Where(c =>" * "。Contains(text)) .md)? – Filburt

+0

あなたは 'query'で何かを得ていますか?そしてなぜあなたは 'query.ToList()'を返すのですか?あなたはtolist部分を省略することができ、単にクエリを渡すことができます。既にリスト形式です –

答えて

-1

あなたは、これは書くときにのみUNITNAMEで検索:

var query = db.Mainindustapp.Where(c => c.UnitName.Contains(text)).ToList(); 

これを試してみて、私はそれが動作すると思います:

var query = db.Mainindustapp.Where(c =>"*".Contains(text)).ToList(); 
0

これを行うには、この「インストール・パッケージのEfFtsを使用してください「ライブラリ

サイトを確認してください。https://effts.codeplex.com/

関連する問題