It seems that there's a pairing between a node's view and it's indexing.
You may add new data to the index easily, through the 'update index' hook but I think you can't modify data present in the node's view, which is included in the index by default, and cannot be removed. Node module's node_update_index hook calls the view hook and adds the result to the index. You may override this by implementing hook nodeapi 'view' but this will change the node's view.
Why do I need some fields to be viewed but NOT indexed? A good example is the CCK nodes. CCK view includes node's field labels and texts, and I don't want the labels to be indexed, just the texts. But of course, they should be part of the view output.
So my question is... how can I separate a node's view from its indexing so that the view isn't always included in the index?
There might be a solution for this (without patching core modules), but I don't know... the simplest thing I came up with is adding a flag to hook nodeapi('update index'), telling the hook caller to rewrite the index with the hook's result instead of appending it to the index previously build based on hook view.
I'm referring to the node_update_index() function, in node.module (this is the original code, I haven't done anything yet):
<?php
// Get node output (filtered and with module-specific fields).
if (node_hook($node, 'view')) {
node_invoke($node, 'view', false, false);