4

私はC#でレイヴンクエリを実行しており、Where()とSearch()の両方の拡張メソッドを利用しています。特定のGuidフィールドを持つインデックスと、テキストの本文に存在するテキストのみを返す必要があるため、これらの機能の両方が必要です。残念ながら、Where拡張メソッドはSearch拡張メソッドと互換性がないようです。それらを組み合わせると、次のようなLuceneクエリが表示されます。

    Query:  FeedOwner:25eb541c\-b04a\-4f08\-b468\-65714f259ac2 MessageBody:<<request*>>

これは、基準の「MessageBody」部分を完全に無視しているようです。したがって、「フリーテキスト」でどの制約を使用するかは問題ではなく、使用しません。

私は「検索」だけでテストしましたが、それは機能します-したがって、フリーテキスト検索自体では問題ありません-2つを組み合わせるだけです。

4

1 に答える 1

8

正しい方向を教えてくれた Raven@GoogleGroups の @Tobias に感謝します。Where 句と Search 句をどのように組み合わせるかを定義するオプションがありました。

Query<T>.Search(candidate => candidate.MessageBody, queryString + "*", options: SearchOptions.And);
于 2012-08-14T22:07:22.220 に答える