> Hi Laura! > > The string functions are standard SPARQL features and don't rely on a > text index. > > The text index is only useful if you need either full text search or > other efficient non-exact types of text matching such as prefix searches. > > You can always use FILTERs and string functions, but they can be slow > when you have large amounts of data as they need to be evaluated for > every string in the data. > > -Osma
Thank you for the answer. So let's say I want to search nodes in my graph by rdfs:label. Is this correct... 1) STRSTART(): fast by default because predicates are sorted. Only does exact search. 2) STRSTART(LCASE(?label)): fast because predicates are sorted, but just a little bit slower than 1) because if muse LCASE() some strings 3) REGEX(): slow because it must go through all rdfs:labels (use jena-text instead) 4) CONTAINS(): slow because it must go through all rdfs:labels (use jena-text instead) Is this correct? If my app has an input search box where users can search an item by title (on a large graph), would it be a good idea to go with 2) or should I consider setting up a text-query index?