Die Antwort auf die Suchanfrage via Suchformular (Beispiel-Code folgend) ist ein XML-Strom, welcher der Notation von Apache Solr folgt. Da der Resultat-Strom nun damit prinzpiell anwendungs-neutral ist, kann über einen Connector auch ein anderer Indexer eingesetzt werden, als der im System bereits eingebaute ZCatalog. ZMS wird mit zwei Connectors ausgeliefert:

  1. ZCatalog-Connector: adessiert den eingebauten ZCatalog-Indexer (default)
  2. Apache Solr-Connector: addressiert Apache Solr als externer Indexer 

Da die Such-Ergebnisse auf die Formular-Anfrage vom Server in Form einer XML-Datei zurück geliefert werden, muss diese in der Drittsicht in den HTML-Baum implantiert bzw. restrukturiert werden. Das geschieht durch eine JavaScript-Funktion, die sich im Default-Templateset einer ZMS-Instanz oder im ZMS-Quellcode findet unter $ZMS_HOME/plugins/www/ZMS/zmi_body_content_search.js.

Beispiel: bootstrap-Template für Suchergebnisse

<form class="search" method="get">

    <tal:block tal:condition="python:request.get('searchform')">
    <input tal:condition="python:request.get('searchform')" type="hidden" name="searchform" tal:attributes="value python:request.get('searchform')" />
    <input tal:condition="python:request.get('lang')" type="hidden" name="lang" tal:attributes="value python:request.get('lang')" />
    <input tal:condition="python:request.get('preview')" type="hidden" name="preview" tal:attributes="value python:request.get('preview')" />
    <legend tal:content="python:here.getZMILangStr('SEARCH_HEADER')">Search header</legend>
    <div class="form-group">
        <div class="col-md-12">
            <div class="input-group">
                <tal:block tal:content="structure python:here.getTextInput(fmName='searchform',elName='search',value=request.get('search',''))">the value</tal:block>
                <span class="input-group-btn">
            <button type="submit" class="btn btn-primary">
                <tal:block tal:content="structure python:here.zmi_icon(name='icon-search')"></tal:block>
            </button>
                </span>
            </div>
        </div>
    </div><!-- .form-group -->
    </tal:block>

<div id="search_results" class="form-group" style="display:none">
    <div class="col-md-12">
        <h4 tal:content="python:here.getZMILangStr('SEARCH_HEADERRESULT')">Result</h4>
        <div class="header row">
            <div class="col-md-12">
                <span class="small-head">
                    <span class="glyphicon glyphicon-refresh" alt="Loading..."></span>
                    <tal:block tal:content="python:here.getZMILangStr('MSG_LOADING')">loading</tal:block>
                </span>
            </div>
        </div><!-- .header.row -->
        <div class="line row"></div><!-- .row -->
            <div class="pull-right">
                <ul class="pagination"></ul>
            </div>
    </div>
</div>

</form>

<script type="text/javascript" charset="UTF-8" src="/++resource++zms_/ZMS/zmi_body_content_search.js"></script>

Beispiel: Ergebnis-Strom search_xml

<response>
    <lst name="responseHeader">
        <int name="status">0</int>
        <lst name="params">
            <int name="q">ipsum</int>
            <int name="page_index">0</int>
            <int name="page_size">10</int>
            <int name="hl.fragsize">200</int>
        </lst>
    </lst>
    <result name="response" numFound="32" start="0">
        <doc>
            <arr name="title"><str><![CDATA[News-Document-1.3]]></str></arr>
            <arr name="index_html"><str><![CDATA[http://localhost:8080/myzmsx/content/neues/news_13/index_ger.html]]></str></arr>
            <arr name="loc"><str><![CDATA[http://localhost:8080/myzmsx/content/e5/e8]]></str></arr>
            <arr name="standard_html"><str><![CDATA[Fifth Folder Fourth Document Labore et dolore magna aliquyam erat, [...]]]></str></arr>
            <arr name="normscore"><str><![CDATA[100]]></str></arr>
            <arr name="score"><str><![CDATA[2780]]></str></arr>
            <arr name="custom"><str><![CDATA[<custom><breadcrumbs><breadcrumb><title>Neues</title><loc>http://localhost:8080/myzmsx/content/neues/index_ger.html</loc></breadcrumb></breadcrumbs></custom>]]></str></arr>
            <arr name="meta_id"><str><![CDATA[ZMSDocument]]></str></arr>
            <arr name="titlealt"><str><![CDATA[News-1.3]]></str></arr>
            <arr name="path"><str><![CDATA[/myzmsy/content/e5/e8]]></str></arr>
            <arr name="id"><str><![CDATA[e8]]></str></arr>
            <arr name="attr_dc_description"><str><![CDATA[Takimata sanctus est]]></str></arr>
        </doc>
    </result>
</response>