【问题标题】:Umbraco Examine - querying issueUmbraco 检查 - 查询问题
【发布时间】:2015-11-19 08:44:35
【问题描述】:

我正在使用检查检索的对象具有以下数据值(image link 以便于查看):

__Icon: icon-shopping-basket-alt-2 color-red __IndexType: content __NodeId: 1413 __NodeTypeAlias: sale __Path: -1,1098,1410,1413 id: 1413 nodeName: Sale test 1 (active) nodeTypeAlias: Sale path: 1098 1410 1413 saleEndDate: 20151231160336000 saleStartDate: 20151026160321000 updateDate: 2015-11-18T17:03:05 writerName: Admin

path 属性是 __Path 的剥离版本。这样做是因为使用 -1 开始查询并将逗号作为查询值时存在问题。

我遇到的问题与必须查询 path 的一部分有关,例如 - 检索 包含 所需 id 的对象(在特定情况下只是1410)。

我在 UmbracoExamine Manager 中执行了以下查询:+nodeTypeAlias: sale +path:1468

C# 代码示例如下所示:

var queryAllSalesInDepartment = searchCriteria
                                        .Field(Constant.Examine.AttributeFields.NodeTypeAlias, Constant.DocumentTypeAlias.Sale)
                                        .And().Field(Constant.Examine.AttributeFields.Path, Umbraco.AssignedContentItem.Parent.Id.ToString())
                                        .Compile();

尽管索引中有可用值,但查询产生 0 个结果。

是我做错了查询还是应该重新考虑以不同的方式格式化路径值?

【问题讨论】:

    标签: c# lucene umbraco umbraco7 examine


    【解决方案1】:

    是的,查询需要“更模糊”:-s 您可以采用(在我看来)难以阅读的方式,例如:https://our.umbraco.org/forum/developers/extending-umbraco/11659-Examine-quering-path 或原始查询方式:

    searchCriteria.RawQuery(@"+path:\-1*" + parentId + "*");
    

    在您的示例中,parentId 为 1410。

    【讨论】:

    • RawQuery 就像一个魅力,谢谢!我将从our.umbraco link 调查实施,并让您知道这是否有效。另外,我必须取回 Path 中的 -1 id,因为 * 不能“转义” - 这是字段查询不允许 * 作为的主要原因第一个字符。
    • 我希望我能对这个答案投票 10 倍!谢谢 :) 现在,我可以睡觉了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多