繁体   English   中英

Lucene 通配符用于 substring 查询

[英]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%'

  1. 您确定您的会员用户名的别名实际上是“用户名”吗? 内置成员用户名(在后台称为“Login”)的别名是“_umb_login”,而在 MembersIndex 中则变为“loginName”。 还有一点——记得在寻找成员时查看 MembersIndex 而不是 ExternalIndex。

  2. 在检查通配符是 * 而不是 ~ (据我所知)。 对于模糊搜索,我什至建议尝试 RawQuery,如下所示: Umbraco 检查 - 查询问题

  3. 如果您还没有,还请查看此处的示例: https://our.umbraco.com/documentation/Reference/Searching/Examine/quick-start/#getting-the-content - 看起来您可能对 boolean 运算符有误解吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM