1

null または空であるプロパティ (文字列) によってフィルター処理されたユーザーのリストを取得したいと考えています。

このためのインデックスを作成しましたが、それを実装する方法が正しい方法であるかどうかはわかりません。

public class Users_Contributors : AbstractIndexCreationTask<User>
{
    public Users_Contributors()
    {
        Map = users => from user in users
                       where user.ContributionDescription != null && user.ContributionDescription != "" 
                       select new {};
    }
}

だから私はレイヴンにユーザーのリストを「準備」してもらいたいだけです。クエリ時に追加のフィルタリング/場所基準を使用せずに、そのインデックスからすべてのユーザー オブジェクトを取得するだけです。

上記のコードは進むべき道ですか、それともより良い方法で同じことを達成できますか? ここで何かが足りないと感じています。ありがとう!

4

1 に答える 1

2

これで問題なく動作します。その結果、インデックスには、ContributionDescriptionフィールドに何かを持っているユーザーのみが含まれます。

少し読みやすくしたい場合は、 を使用できますがstring.IsNullOrEmpty、パフォーマンスには影響しません。

Map = users => from user in users
               where !string.IsNullOrEmpty(user.ContributionDescription)
               select new {};

最後に空のオブジェクトがあるため、おそらく奇妙に感じるかもしれませんが、それは単にインデックス エントリを定義するだけです。他のフィールドで並べ替えやフィルタリングを行っていない場合は、空のオブジェクトを使用しても問題ありません。__document_idマッピングするフィールドに関係なく、エントリが作成されることに注意してください。

于 2013-04-19T16:21:23.597 に答える