0

这很奇怪,但我无法让 ZCatalog 工作。一切都由本书完成,但结果始终是相同的完整列表。

你可以在这里看到:http: //nfp-bg.eionet.eu.int/waste/en/search-results ?catalogTextIdx=selection

到目前为止我做了什么:

  1. 创建 ZCatalog 对象
  2. 使用以下项目创建 ZCTextIndex 词典
    • HTMLWordSplitter
    • CaseNormalizer
    • StopWordRemover
  3. 已创建 catalogTextIdx 索引 - 参数为:
    • 索引的属性名称:PrincipiaSearchSource
    • 指数类型:Okapi BM25 Rank
    • 使用的 ZCTextIndex 词典:http://nfp-bg.eionet.eu.int/waste/catalog//catalogTextIdx/catalogLexicon
  4. 收集的元数据是:
    • 原理搜索源
    • ID
    • 标题
  5. 查找对象仅针对以下类型的对象运行:DTML 文档
  6. 为目录正确创建了项目列表(我只删除了 css / js dtml 文件)
  7. 以下代码用于搜索表单:
<form action="search-results" method="get">
    <input type="text" name="catalogTextIdx" id="catalogTextIdx" value="<dtml-if catalogTextIdx>
    <dtml-var catalogTextIdx><dtml-else>Search...</dtml-if>" class="search-field" />
    <input type="submit" name="SUBMIT" value="Submit Query" class="button" />
</form>

最后,以下代码用于搜索结果页面:

<dtml-with common>&dtml.-Header;&dtml.-left-column;</dtml-with>
<td id="content" valign="top">
    <h2>Search Results</h2>

    <dtml-in expr="catalog(meta_type=['DTML Document'])">
        <h3>Result founded: <a href="<dtml-var "catalog.getpath(data_record_id_)">"><dtml-var title></a></h3>
        <dtml-var "filterRenderedHTML(PrincipiaSearchSource)">
    </dtml-in>
</td>
<dtml-with common>&dtml.-right-column;&dtml.-Footer;</dtml-with>

它应该可以工作,但事实并非如此。我相信它应该是小东西,但仍然不确定。

提前感谢您的所有帮助。

4

1 回答 1

1

ZCatalog 有一个怪癖,即如果您的查询包含目录中不存在的索引,它将返回所有索引对象。在这种情况下,您的查询似乎涉及您未设置的“meta_type”索引。因此 ZCatalog 尝试应用该索引,但没有找到它,因此它返回所有项目。

于 2011-02-21T18:47:09.840 回答