Umbraco检查 - 查询问题

时间:2015-11-19 08:44:35

标签: c# lucene umbraco umbraco7 examine

我使用Examine检索的对象具有以下数据值(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 的剥离版本。这样做是因为使用 -1 启动查询并将逗号作为查询值时存在问题。

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

我已经在 Umbraco 中的检查管理器中执行了以下查询:+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结果。

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

1 个答案:

答案 0 :(得分:5)

是的,查询需要更加模糊" :-s你可以去(在我看来)难以阅读的方式:https://our.umbraco.org/forum/developers/extending-umbraco/11659-Examine-quering-path或这样的原始查询方式:

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

在您的示例中,parentId为1410。