4

I have a list with several thousand items in it. The list has a text field called "Actions" that is set to "append changes to existing text". This field is used to record details of actions taken.

What appears to be happening is that only the latest version of the list item is indexed, so if I search for a term that exists in a previous version of an item, it won't be found.

What I'd like to be able to do is use the search to quickly find an item based on the content of the Actions field, in particular over any text entered into the field in any version of the list items.

In the following example, if version 5 is the latest version of the item, then I can only find the item by searching for something in the version 5 such as "XYZ", but I will not be able to find the item by searching for "ABC" or "DEF" or "User123".

E.g.

  • Item Version 5 - Actions field: I reinstalled XYZ application
  • Item Version 4 - Actions field: I disabled option ABC in application DEF
  • Item Version 3 - Actions field: I rebooted User123's computer
  • Item Version 2 - Actions field: Verified how to reproduce the issue with User123
  • Item Version 1 - Actions filed: -

Is there any way I could configure search and/or the list to be able to search across all versions of this field? In the above example I would like to be able to search for "ABC" and locate the item.

Environment is SharePoint 2010 Standard Edition.

1

Out of the box I'm not aware of a way to do this as SharePoint will only crawl the latest version.

You could use PowerShell or CSOM to access the versions and possibly copy out the comments to a new list, which could then be crawled. You could tie that list together via a lookup column and create a relationship between the two.

With powershell once you have the item context there is a .versions property you can iterate thru to get all version information. Using JavaScript CSOM it's a bit more complex (but I use PowerShell more than CSOM). The below would be a simple way to list the versions available for the first item in a document library with PS. Once you have the version you can iterate over each one, and pull back their properties.

$web = Get-SPWeb http://siteurl
$list = $SPWeb.Lists["Documents"]
$items = $list.items
$items[0].versions
  • Thanks for this Jesus - confirms what I was beginning to suspect. This has pointed me in the right direction and I've done as you suggest (powersehll to maintain secondary list with "compiled history" field) and that's working well. Wish it were simpler but this gets the job done. – Dylan Lee Jan 15 '14 at 2:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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