As Geert indicates, there is no exactly comparable functionality in MarkLogic today. You can think of the document—structure and values—as the "API to the indexes". Thus, if you want to index something it needs to be (mostly) explicit in the document itself. (Word stemming is a counter example of something that's automatically derived index time.) I think your best bet will be to compute the derived values for inserts or updates and batch process your existing content. You can use CPF <http://docs.marklogic.com/guide/cpf> or lower level triggers <http://docs.marklogic.com/guide/app-dev/triggers> to manage the steady-state workflow or orchestrate externally depending on what you have in front of MarkLogic (e.g. an application/service layer in Java, for example).
Justin > On Jan 8, 2015, at 12:19 PM, Geert Josten <[email protected]> wrote: > > Hi Alexei, > > On the question whether MarkLogic allows indexing function results, then the > answer is unfortunately no. Such a feature is on the wish list of many of us. > > The best alternative for upper-case would be using collations to ignore case, > for instance http://marklogic.com/collation//S1 (ignore case and diacritics) > or http://marklogic.com/collation//S2 (ignore case). You can use the > collation builder in the admin interface to tweak the collation uri, or > search the documentation to find out all options. > > Kind regards, > Geert > > From: Alexei Betin <[email protected]> > Reply-To: MarkLogic Developer Discussion <[email protected]> > Date: Thursday, January 8, 2015 at 8:47 PM > To: "[email protected]" <[email protected]> > Subject: [MarkLogic Dev General] function index in MarkLogic? > > Hello, > > > > Does MarkLogic has something similar to “function index” as exists in other > databases such as Oracle? For example, in Oraclecreate a function index on a > value of UPPER(<field_name>) as follows: > > CREATE INDEX cities_fn_idx ON cities (UPPER(name)); > > which ensures that a query like the one below is efficient and not using the > full table scan: > > SELECT name FROM cities WHERE UPPER(name) = 'HOUSTON'; > > > > I’d like to do something similar with MarkLogic which could help speed up, > e.g. the following simple query (which currently prohibitively slow despite > an index on /A/City): > > > > collection()/A/[upper-case( City ) = 'HOUSTON'] > > > > upper-case() is only an example, I am looking for a solution that would > accommodate any function/transformation that to be used in a query condition > from an existing element. > > > > Clearly, one solution would be to pre-compute the derived field, add it to > all the documents in the collection, and create an a “function index”). > > > > Thanks, > > > > <image005.jpg> > <image006.jpg> > Alexei Betin > > Principal Architect; Big Data > P: (817) 928-1643 | Elevate.com > 4150 International Plaza, Suite 300 > Fort Worth, TX 76109 > > > > Privileged and Confidential. This e-mail, and any attachments thereto, is > intended only for use by the addressee(s) named herein and may contain > privilegedthereto, is strictly prohibited. > > > > <image005.jpg><image006.jpg>_______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
