私はそのようなクエリを使用しています:
var query = "*" + QueryParser.Escape(input) + "*";
session.Query<User, UsersByEmailAndName>().Where(x => x.Email.In(query) || x.DisplayName.In(query));
単純なインデックスのサポートにより:
public UsersByEmailAndName()
{
Map = users => from user in users
select new
{
user.Email,
user.DisplayName,
};
}
ここで私はそれを読んだ:
「デフォルトでは、RavenDB はすべてのコンテンツに対して LowerCaseKeywordAnalyzer と呼ばれるカスタム アナライザーを使用します。(...) 各フィールドのデフォルト値は、ストアの FieldStorage.No とインデックスの FieldIndexing.Default です。」
インデックスには次のフィールドが含まれます。
DisplayName -"jarek waliszko"
および電子メール-"my_email@domain.com"
そして最後に、次のとおりです。
query
のようなものである*_email@*
か*ali*
、結果が問題ない場合。しかし、例えば内でスペースバーを使用している間*ek wa*
、何も返されません。なぜ、どのように修正するのですか?
ところで:私はRavenDBを使用しています-ビルド#960