我将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= 页面&amp; wt = json&amp; indent = true
成为Solr的新人并且倾向于深陷我正在挣扎!
答案 0 :(得分:0)
第一个问题是这是否已编入索引。在为这些字段加载令牌时,请检查您在Admin UI's Schema Browser screen中看到的内容。如果您没有看到标题和内容字段,则需要查看索引。
如果内容存在,问题是如何搜索它。您需要为默认搜索类型指定默认字段( df 参数),或者使用eDisMax指定字段列表( fl 参数)。您没有在查询中明确地执行此操作,因此必须在/ select处理程序的solrconfig.xml中进行此设置。检查你有什么。
最有可能搜索文字字段。要实现此目的,需要将内容和标题字段中的copyField单独或作为glob(文本字段)(的 srcField =&#34; *&#34)即可。请注意,由于您搜索文本字段,因此应用的分析链适用于该字段,而不适用于您复制内容的任何字段。再次,在管理界面中加载文字字段的令牌,以查看它包含的内容。
或者,尝试在上面的查询中添加 df =内容,看看是否得到了一些结果。这也意味着无论默认字段是什么,它都没有填充或没有正确填充。