xquery - Numbers in cts:word query in Marklogic -


i have cts:word-query having number text value. cts:search(fn:doc(),cts:word-query("226"))

this query fetch results matching 226 in documents. need documents contain 0026 also.

example: abc.xml

<a> <b>00226</b> </a> 

this abc1.xml

<a> <b>226</b> </a> 

if give query cts:search(fn:doc(),cts:word-query("226")), fetch abc1.xml , if query cts:search(fn:doc(),cts:word-query("00226")), fetch abc.xml.

but need both documents, irrespective of leading zeros.

simplest way use wild card character (*) , add wildcarded option

cts:search(fn:doc(),cts:word-query("*226", ('wildcarded'))) 

edit:

although matches example documents, kishan points out in comments, the wildcard matches unwanted documents (e.g. containing "226226").

since range indexes not option in case because data mixed, here alternative hack:

cts:search(     fn:doc(),     cts:word-query(         $lead in ('', '0', '00', '000')          return $lead || "226")) 

obviously, depends on how many leading zeros there can , work if known , limited.


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -