SharePoint list lookup column indexing and CAML query relation

本文探讨了在SharePoint中使用CAML查询时遇到的问题,特别是当使用带有索引的查找列时,某些类型的CAML查询会停止返回结果。文章通过实例说明了解决方案,并给出了适用于大量数据的有效CAML查询格式。

I’m developing the SharePoint site with so many lists. First I didn’t consider the indexing of the columns of lists. But as the lists are going to have large number of items the performance is decreasing. So I started to index the columns of lists to increase the performance. After indexing I get superb performance for searching. But I get stared one problem when I used lookup column of list as indexed column. My CAML query using the lookup column for searching stopped returning results, which out any error or exception.

                This problem stretched my hairs. After lot of time spending for searching any solution I found one blog (http:/blackninjasoftware.com/2009/05/12/why-should-indexing-a-sharepoint-field-break-your-caml-query/) where the person had the same problem like me. From his experiments he solved the problem. I’m mentioning the trick he used here also and any one can refer the blog also.

                Here I’m going to describe the whole thing using one example so; the new one in SharePoint can also understand the problem and use the CAML query for right way.

                So, let’s start.  I created on web site in SharePoint and created two lists 1) Users and 2) User Rights. I’ve on column “UserName” in “Users” list. In “User Rights” I’ve two columns a) “Right” as Simple text and b) “User” as Lookup to the “Users” list “UserName” column. I didn’t indexed any of the columns in “User Rights” list. I created 3000 items in “Users” list. For each item in “Users” list, I created 100 items in “User Rights” list. So I’ve 300000 items in “User Rights”. After that I created a test web part which used to different type of CAML queries to get the “User Rights” items based on the “UserName”.

                My first CAML query used the “UserName” field value as the parameter and the query is as follows.

                “<Where><Eq><FieldRef Name=’User’ /><Value Type=’Lookup’>UserName</Value></Eq></Whre>”.

                My second CAML query used the item ID of “Users” list as parameter and the query is as follows.

                “<Where><Eq><FieldRef Name=’User’ LookupId=’TRUE’ /><Value Type=’Lookup’>ID of “Users” list item</Value></Eq></Where>”.

                Both of the queries runs successfully when there is no index defined on the “User” columns of “User Rights” list. But when I indexed that column, the first query is working fine. But the second query stopped. Then as I wrote above, I tried with the solution, and changed the query as follows.

                “<Where><Eq><FieldRef Name=’User’ LookupId=’TRUE’ /><Value Type=’Integer’>ID of “Users” list item</Value></Eq></Where>”.

                And it surprised me. That query worked.

                So I’ve to change my entire CAML query in my project.

                After this I tried to find that after how many entries this CAML query does not work, the result surprised me. Up to 1999 entries my CAML query worked fine with indexed lookup column. As soon as the 2000th entry is created it blows off. Then I tried it with updated one and it worked again.

                So, I’m advising the person who are using CAML query, consider this to use the following type of query to search the data.

                “<Where><Eq><FieldRef Name=’User’ LookupId=’TRUE’ /><Value Type=’Integer’>ID of “Users” list item</Value></Eq></Where>”.

Also consider the indexing of the columns for better performance.

                Now, I’ll try to find the cause of this query change that why one type is working and the other type is not working.

内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,涵盖正向与逆向运动学求解、正向动力学控制,并采用拉格朗日-欧拉法推导逆向动力学方程,所有内容均通过Matlab代码实现。同时结合RRT路径规划与B样条优化技术,提升机械臂运动轨迹的合理性与平滑性。文中还涉及多种先进算法与仿真技术的应用,如状态估计中的UKF、AUKF、EKF等滤波方法,以及PINN、INN、CNN-LSTM等神经网络模型在工程问题中的建模与求解,展示了Matlab在机器人控制、智能算法与系统仿真中的强大能力。; 适合人群:具备一定Ma六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)tlab编程基础,从事机器人控制、自动化、智能制造、人工智能等相关领域的科研人员及研究生;熟悉运动学、动力学建模或对神经网络在控制系统中应用感兴趣的工程技术人员。; 使用场景及目标:①实现六自由度机械臂的精确运动学与动力学建模;②利用人工神经网络解决传统解析方法难以处理的非线性控制问题;③结合路径规划与轨迹优化提升机械臂作业效率;④掌握基于Matlab的状态估计、数据融合与智能算法仿真方法; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点理解运动学建模与神经网络控制的设计流程,关注算法实现细节与仿真结果分析,同时参考文中提及的多种优化与估计方法拓展研究思路。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值