TDD with XQuery

Author: Dave Cassel  |  Category: Software Development

Today I had a complicated function to write. The framework we’re using for this project has unit testing built into it, so for the first time in a long time, I did the Test Driven Development approach: I wrote a set of tests, then wrote code to pass the tests, and then refactored. It felt [...]

Word query specification

Author: Dave Cassel  |  Category: Software Development

While looking at the database configuration in MarkLogic Server, have you ever noticed the Word Query link on the left? (Click Configure -> Databases -> the name of one of your databases -> Word Query.) Ever wonder what it does? Word Query is a simple way to specify what parts of a document should be [...]

Unparsing a custom facet

Author: Dave Cassel  |  Category: Software Development

In many search applications, when we show the results of a user’s search, we also want to display the search that was done by putting the query string into a text box, especially if the search is built up from an advanced search screen. In some cases, we might want to modify the search before [...]

A custom facet for the Search API

Author: Dave Cassel  |  Category: Software Development

I recently got to teach the MarkLogic Essentials class for MarkLogic University. To illustrate custom facets, I implemented one on the fly with the class watching. No pressure. :) The good news is that it (almost) worked with the first try — there was just one little problem with the display. This post shows the [...]

Splitting data with Info Studio

Author: Dave Cassel  |  Category: Software Development

Today we’ll play “Spot That Mistake”. This will probably be really easy for some but it threw me off for a bit. My goal I wanted to bring some data into MarkLogic Server just to give me something to work with while exploring some features. I grabbed an XML file that represented the geocaches that [...]

text(), fn:string() and fn:data()

Author: Dave Cassel  |  Category: Software Development

I’m going to be teaching the MarkLogic University Basic XQuery class tomorrow, and as usually happens when I get to teach, I’ve learned something while reviewing the material. In this case, it’s the differences among text(), fn:string() and fn:data(). text() This one is commonly seen at the end of an XPath expression. It returns a [...]

Expires headers in MarkLogic Server

Author: Dave Cassel  |  Category: Software Development

A little while ago I ran YSlow, a Firefox plugin that evaluates how quickly a web page loads, against an Application Builder based app I’d written. YSlow gave my site a grade C, with an overall performance score of 71 (out of 100). Some of the suggestions that YSlow offered are not simple to implement [...]

Searching for a range of dates

Author: Dave Cassel  |  Category: Software Development

I learned something interesting today, so I thought I’d share. A colleague of mine wanted to figure out how to express a range of dates as a query string for an Application Builder app. These applications use the Search API, so a lot of the search magic is in the options that get passed into the [...]

Experimenting with AppBuilder’s rewriter

Author: Dave Cassel  |  Category: Software Development

In a recent post, I wrote a tutorial showing how to add a view to an Application Builder-based application. As one step, I made a copy of the rewrite.xqy module under the custom directory so that I had an easy way to add my new view. There was one thing about the approach that I [...]

Querying across fragments

Author: Dave Cassel  |  Category: Software Development

In MarkLogic Server, we tend to think about the documents that we put into the database. Most of the documentation, conversely, talks about fragments. I’ve had to learn some about fragments recently, so I figured I’d share. What are fragments? Fragments are one layer of granularity of data in a MarkLogic Server database. In particular, [...]