Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
12-28-2020 05:10 PM
Hi,
I want to create a full-text index for nodes that contains specific labels
For example index for nodes with labels: FOOD and FRUITS
I tried something like:
CALL db.index.fulltext.createNodeIndex("foodIndex", ['FOOD', 'FRUITS'], ['content']);
but it creates index on nodes which have FOOD or FRUIT label.
Is it possible to create an index only on nodes that have both labels set?
Regards,
Jacob
12-28-2020 05:51 PM
Create a (temporary) FOODFRUITS
Label such that both labels are present. Then fulltext index using the Label FOODFRUITS
. You can delete the FOODFRUITS
label later or keep it as it may be useful.
12-28-2020 06:04 PM
Ok but what if i will add another node with FOOD and FRUIT label?
I’d like to have solution where I can group specific labels, not creating new one for every single combination.
There may be VEGETABLE or others groups of food products.
In my project I also have more factors for example unit type label
12-28-2020 06:27 PM
Good point.
I'm guessing you could have a Trigger that checks whenever a FOOD and/or FRUIT label gets added to an existing Node and/or when the Node gets created with the Label and then automatically creates the Union of the two.
I tried seeing if I could find the source on GitHub for db.index.fulltext.createNodeIndex, which is where this would need to be tweaked but I'm not sure where to find it...
12-28-2020 06:33 PM
Ok I will try it. What about scalability performance. It won’t affect it if my database will grow much? It’s more theoretical question.
What if I will change label from FRUIT to VEGETABLE? Should I create trigger which will automatically change the “combined” label.
Also there is another thing. I want to have indexes which different depth levels. For example I want to have index for FOOD, for FOOD DIARY and for FOOD DIARY MILLILITERS. So every node should have 3 additional “combined” labels based on single ones, right?
I’m here focused on read speed and don’t care much about write speed.
Overall it would be nice to have indexes based on on nodes with both labels.
I think createNodeIndex doesn’t allow it alone.
12-28-2020 07:23 PM
I agree that your use case is a reasonable one (although uncommon.)
It needs to be made as a request to the APOC powers.
Or if you or somebody you know is clever enough, to make an addition to the db.index.fulltext
to have a version of the function that requires all the Labels in the list instead of any Label. Then make a Pull Request to have it added.
I'm stumped as to where the source code is, otherwise I might take a crack at it myself (just for the experience.)
12-29-2020 01:25 AM
@clem I probably found the source code of it
I’m really not into Java so if you would like to write it for experience that would be amazing
11-23-2022 12:48 AM
any solution?
All the sessions of the conference are now available online