Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I have a long list (more than 5,000 items) and due to view threshold I indexed some columns. One of them is a people/user column. When I want to create a view that filters on the User column, then it doesn't work and returns the error message "This view cannot be displayed because it exceeds the list view threshold (5000 items) enforced by the administrator."

Here is what I tested :

  • if I use "equal to" "[Me]" then it works
  • if I use "equal to" "name" then it doesn't work (the column is set to display the Name)
  • if I use "equal to" "domain\username" then it doesn't work
  • if I use "equal to" "email@address" then it doesn't work
  • if I use "equal to" "username" then it doesn't work
  • if I use "equal to" "userID" then it doesn't work
  • if I use "equal to" "userID;#username" then it doesn't work
  • if I use "equal to" "-1;#username" then it doesn't work
  • I cannot use "contains" or "begins with" because it's a people field

I don't have any more ideas.... Any suggestions ?

Thank you

share|improve this question
    
Are you using claims?? In such case the user name would be different. –  C. Marius - MVP May 30 '13 at 15:00
    
@C.Marius nope... I don't know what it is ! –  AymKdn May 31 '13 at 9:08

2 Answers 2

[Me] is the standard way to filter the list. As I recall, person/group columns have additional overhead in that there are additional queries that affect the threshold, as with lookup columns. This additional overhead in turns reduces the actual threshold value that can be returned is less than the limit. I'm trying to find a reference to that.

You may need to have the List View Lookup Threshold increased in Central Admin as well.

share|improve this answer
    
I don't have access to the Central Admin :-( –  AymKdn May 31 '13 at 9:08
up vote 0 down vote accepted

Finally I decided to create a Text Only version of my person/group column that is also indexed. I can now filter on that TEXT column, and I have a workflow in the background that copy the value of the person/group to this text field.

EDIT:

It's actually possible to do it using the UserID. The CAML code will include LookupId="True" and, at the end, the WHERE clause needs to look like <FieldRef Name="My_x0020_Field_x0020_Name" LookupId="True"/><Value Type="Integer">123</Value>

I've implemented this method in my Sharepoint JavaScript library for the queries. For example if the UserID is 123 my request will look like that with SharepointPlus:

$SP().list("List Name").get({
  fields:"Manager",
  where:"Employee_x0020_Name ~= 123" /* we use the special operator '~=' */
}, function(data) {
  if (data.length===1) alert("Manager: "+data[0].getAttribute("Manager"))
})
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.