¿Cómo utilizar Select2 con JSON a través de solicitud Ajax?

MiSelect2 3.4.5 no está trabajando con datos JSON.

Aquí está mi caja de entrada en HTML:

<input class='form-control col-lg-5 itemSearch' type='text' placeholder='select item' />

… Y mi JavaScript

$(".itemSearch").select2({
    placeholder: "Search for an Item",
    minimumInputLength: 2,
    ajax: {
        url: "/api/productSearch",
        dataType: 'json',
        quietMillis: 100,
        data: function (term, page) {
            return {
                option: term
            };
        },
        results: function (data, page) {
            var more = (page * 10) < data.total;
            return {
                results: data.itemName,
                more: more
            };
        }
    },
    formatResult: function (data, term) {
        return data;
    },
    formatSelection: function (data) {
        return data;
    },
    dropdownCssClass: "bigdrop",
    escapeMarkup: function (m) {
        return m;
    }
});

Hice una API con Laravel 4 que devuelve un valor cada vez que escribo algo en mi cuadro de texto.

Aquí está el resultado si escribo "prueba" en mi cuadro de texto:

[{"itemName":"Test item no. 1","id":5},
{"itemName":"Test item no. 2","id":6},
{"itemName":"Test item no. 3","id":7},
{"itemName":"Test item no. 4","id":8},
{"itemName":"Test item no. 5","id":9},
{"itemName":"Test item no. 6","id":10},
{"itemName":"Test item no. 7","id":11}]

No puedo agregar el resultado a mi menú desplegable Select2. Yo creo queformatSelection yformatResult están causando el problema porque no sé qué parámetro debe colocarse en él. No sé dónde obtener esos parámetros como el contenedor, el objeto y la consulta y los valores que debería devolver, ¿o mi respuesta JSON es incorrecta?

Respuestas a la pregunta(7)

Su respuesta a la pregunta