Skip to content

Instantly share code, notes, and snippets.

View grtjn's full-sized avatar

Geert grtjn

View GitHub Profile
@grtjn
grtjn / task-lib.xqy
Created July 26, 2022 16:33
Task helper lib
xquery version "1.0-ml";
module namespace tl = "http://marklogic.com/task-lib";
import module namespace tb="ns://blakeley.com/taskbot" at "/lib/taskbot/taskbot.xqm";
declare namespace eval="xdmp:eval" ;
declare option xdmp:mapping "false";
@grtjn
grtjn / README.md
Last active January 11, 2022 17:31
Configuring Gradle for use with MLCP

Setting up your project for MLCP

  • copy stuff from example build.gradle to your own build.gradle
  • define mlcpVersion in your gradle.properties (for example: 10.0.8.2)
  • Download MLCP binaries, and extract into a folder names mlcp/ in your project
  • Remove bin/*.sh, bin/*.bat, lib/*.jar, lib/*.txt, src/*, docs/*
@grtjn
grtjn / .gitignore
Last active January 10, 2022 21:16
Using Credentials plugin in a safe way with Datahub and ml-gradle
# hide secrets
secrets.properties
@grtjn
grtjn / json-export.tmpl
Created November 7, 2020 16:16
Docker-gen JSON Export template
{
"Docker": {
"Name": "{{ .Docker.Name }}",
"NumContainers": {{ .Docker.NumContainers }},
"NumImages": {{ .Docker.NumImages }},
"Version": "{{ .Docker.Version }}",
"ApiVersion": "{{ .Docker.ApiVersion }}",
"GoVersion": "{{ .Docker.GoVersion }}",
"OperatingSystem": "{{ .Docker.OperatingSystem }}",
"Architecture": "{{ .Docker.Architecture }}",
@grtjn
grtjn / seach-region.xqy
Created May 19, 2020 11:54
Searching regions
xquery version "1.0-ml";
declare option xdmp:mapping "false";
declare function local:matchRegion0($region as xs:string, $country as xs:string?)
as xs:boolean
{
let $in-country := '/country[name-variants/variant = $country]/regions/region/name-variants/variant'
let $anywhere := '/country/regions/region/name-variants/variant'
@grtjn
grtjn / fluent-node-builder.sjs
Last active May 21, 2021 14:32
Fluent interface for MarkLogic NodeBuilder
'use strict';
// Fluent interface functions
function document(root) {
return function(b) {
return (b || new NodeBuilder()).addDocument(root);
}
}
@grtjn
grtjn / saint-nicolas-lottery.xqy
Created November 6, 2017 19:22
Saint Nicolas Lottery
xquery version "1.0-ml";
declare function local:draw-one($remaining-map, $member) {
let $household-name := name($member/..)
let $household-map := map:get($remaining-map, $household-name)
let $household-count := count(map:keys($household-map))
let $household-key := $household-name || "/" || head(map:keys($household-map))
let $remaining-members :=
for $h-name in map:keys($remaining-map)
@grtjn
grtjn / content-suggest.xqy
Created October 22, 2015 19:33
Spell suggestions driven from lexicon
xquery version "1.0-ml";
let $term := "werld"
let $start-char := substring($term,1,1)
let $limit := 10
let $threshold := 100
return (
for $candidate in cts:field-words("meta-content",$start-char)
let $distance :=
if (starts-with($candidate, $start-char) and string-length($candidate) le 64) then
@grtjn
grtjn / analyze-data.xqy
Last active July 19, 2017 14:40
MarkLogic REST api extension for initial data analysis and index creation
xquery version "1.0-ml";
module namespace ext = "http://marklogic.com/rest-api/resource/analyze-data";
import module namespace admin = "http://marklogic.com/xdmp/admin" at "/MarkLogic/admin.xqy";
declare namespace roxy = "http://marklogic.com/roxy";
declare namespace xs = "http://www.w3.org/2001/XMLSchema";
declare namespace db = "http://marklogic.com/xdmp/database";
@grtjn
grtjn / awesome.xqy
Last active August 29, 2015 14:01
MarkLogic Kick-ass Awesome Thanks..
xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";
declare namespace xdmp = "http://marklogic.com/xdmp";
declare function xdmp:tidy-mess($query) {
for $tweet in xdmp:tidy(xdmp:http-get(concat("https://twitter.com/search?q=", encode-for-uri($query)))[2])[2]
//html:div[string(@class) = 'content']
return
<li xmlns="http://www.w3.org/1999/xhtml">{