【问题标题】:How to search a collapsed JSON document如何搜索折叠的 JSON 文档
【发布时间】:2016-07-21 10:44:11
【问题描述】:

我已经通过 json 文档压缩成几个字段:Content、Title 和 id

id 是一个简单的唯一 ID,标题是页面标题,例如“页面标题”,内容是其他所有内容,因此在此上下文中构成网页的元素如下:图像替代文本、页面上的文本等,但是没有 HTML 只是原始内容。我希望能够在这个内容块中执行搜索,所以说它看起来像这样

“一个图像替代文本来自页面的一些文本”如果我搜索“来自页面”我会期待一个结果。但是我没有得到任何东西。我的内容字段类型设置为包含以下过滤器

        <tokenizer class="solr.WhitespaceTokenizerFactory"/>

    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="lang/stopwords_en.txt"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
    <filter class="solr.PorterStemFilterFactory"/>

但是,当我查询我的索引时,即使使用单个单词,我也没有得到任何结果: http://localhost:8983/solr/collection1_shard2_replica1/select?q=页面&wt=json&indent=true

作为 Solr 的新手,我很挣扎!

【问题讨论】:

    标签: solr


    【解决方案1】:

    第一个问题是这是否被索引。当您为这些字段加载令牌时,请检查您在 Admin UI's Schema Browser screen 中看到的内容。如果您没有看到 Title 和 Content 字段,则需要查看索引。

    如果内容在那里,问题是您如何搜索它。您需要为默认搜索类型指定默认字段(df 参数)或使用 eDisMax 指定字段列表(fl 参数)。您没有在查询中明确执行此操作,因此必须在 solrconfig.xml 中为 /select 处理程序设置。检查你那里有什么。

    最有可能搜索 文本 字段。为此,您的 ContentTitle 字段需要有一个 copyField 到 text 字段中,可以单独或作为一个整体( srcField="*")。请注意,由于您搜索文本字段,因此应用的分析链适用于该字段,而不是您从中复制内容的任何字段。同样,在管理 UI 中加载 text 字段的标记以查看它包含的内容。

    或者,尝试将 df=Content 添加到上面的查询中,看看是否能得到一些结果。这也意味着无论默认字段是什么,它都没有填充或没有正确填充。

    【讨论】:

      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多