我正在使用这样的查询:
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 的自定义分析器。(...) 每个字段的默认值是 Stores 中的 FieldStorage.No 和 Indexes 中的 FieldIndexing.Default。”
该索引包含以下字段:
显示名称-"jarek waliszko"
和电子邮件-"my_email@domain.com"
最后是:
如果query
是类似的东西*_email@*
或*ali*
结果很好。但是,当我在 eg 中使用空格键时*ek wa*
,没有返回任何内容。为什么以及如何解决它?
顺便说一句:我正在使用 RavenDB - Build #960