[英]Lucene wildcard for substring query
我想在 Lucene 通配符的帮助下获取字段“用户名”包含 substring 例如“用户”的所有成员。
会员的用户名是“用户名”
“用户” - 未找到
“rname” - 未找到
“用户名” - 找到
我使用了下面的代码,但似乎并非在所有情况下都有效;
string alias = "username";
IBooleanOperation op;
IQuery query;
var values = Value.Split(',');
if (values.Length > 0)
{
string searchQuery = $"({alias}:({string.Join("~ ", values)}~))";
op = query.And(op).NativeQuery(searchQuery);
}
我需要类似 SQL 的东西:WHERE [username] LIKE '%user%'
您确定您的会员用户名的别名实际上是“用户名”吗? 内置成员用户名(在后台称为“Login”)的别名是“_umb_login”,而在 MembersIndex 中则变为“loginName”。 还有一点——记得在寻找成员时查看 MembersIndex 而不是 ExternalIndex。
在检查通配符是 * 而不是 ~ (据我所知)。 对于模糊搜索,我什至建议尝试 RawQuery,如下所示: Umbraco 检查 - 查询问题
如果您还没有,还请查看此处的示例: https://our.umbraco.com/documentation/Reference/Searching/Examine/quick-start/#getting-the-content - 看起来您可能对 boolean 运算符有误解吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.