This AppleScript will iterate over all selected tracks in iTunes and play them for 0.01 of a second which has been helpful to force iTunes to update track information. Weird that there is no built in option to do this.
tell application "iTunes" set sel to selection repeat with aTrack in sel tell aTrack play delay 0.01 end tell end repeat end tell
And to enabled 1/2 star ratings in iTunes you'd enter the following into Terminal (although how one uses this in Smart Playlists I don't know...)
defaults write com.apple.iTunes allow-half-stars -bool TRUE