Hi Oscar,

 

You will have to maintain a separate collection in order to do that.

 

That separate collection will contain the node-pre or node-id of each value to be indexed.

Storing the node-pre is the faster way but require a append-only main collection if you do not want to have to recreate the entire separate collection after each main collection update.

 

1.       Add the new map entries (value-to-be-indexed,node-pre or node-id) in the separate collection

2.       Reindex the separate collection

 

An even faster solution is to store the values in text nodes and node-pre or node-id in attributes in order to create only a text index (or vice/versa). That will speed up the reindexation.

 

To use this custom index :

1.        Use the db:attribute or db:text function on the separate collection to obtain the list of node-id or node-pre associated with a given value,

2.       For each node-xx, use the db:open-xx function on the main collection to obtain the real node.

 

If you are familiar with CouchBase/CouchDB, it’s a little like creating a view ;-)

 

But such a built-in feature would be great !

 

Best regards,

Fabrice Etanchaud

Questel/Orbit

 

 

De : basex-talk-bounces@mailman.uni-konstanz.de [mailto:basex-talk-bounces@mailman.uni-konstanz.de] De la part de Oscar Herrera
Envoyé : mercredi 24 septembre 2014 03:30
À : basex-talk@mailman.uni-konstanz.de
Objet : [basex-talk] Text Index just over some elements

 

Hi,

I'm trying to tune my BaseX with a text index only over certain elements, is that possible?, what I have found so far is to create a text index, but I have plenty of nodes on my documents that don't need to be indexed since is very unlikely that a search over that value will occur.

So, is there any way in which I can create a text index only over certain elements and not all of them?, if not, is this planned on a near future?

Thank you,

Oscar H