Solr为fq vs q返回不同的结果

时间:2012-11-17 04:55:52

标签: solr

我已经在Solr中索引了电影数据。基本查询按预期工作,但是当我为faces和q启动过滤器查询时,结果是不同的。

查询/select?q=facetGenre:Drama&wt=xml会返回结果

而查询/select?q=*.*&fq=facetGenre:Drama&wt=xml不会返回任何结果。

这可能是什么原因?请帮忙。

由于Genre字段中有“\”,例如“Action \ Adventure”,它是一个自定义字段类型“facetStringwithSlash。详情如下

<fieldType name="facetStringwithSlash" class="solr.TextField" positionIncrementGap="100">

<analyzer type="index">
<tokenizer class="solr.PatternTokenizerFactory" pattern="[/,]\s*"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="0" preserveOriginal="1" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" stemEnglishPossessive="1"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>

<analyzer type="query">
<tokenizer class="solr.PatternTokenizerFactory" pattern="[/,]\s*"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" preserveOriginal="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" stemEnglishPossessive="1"/>
<filter class="solr.ASCIIFoldingFilterFactory"/></analyzer></fieldType>
</analyzer>

</fieldType>

1 个答案:

答案 0 :(得分:2)

正如@joeln指出的那样,您应该在查询中使用:

select?q=*:*表示匹配任何字段中的任何值。

如果是select?q=*.*,由于查询中未指定任何字段,因此它会在默认字段中进行搜索,并匹配其中包含.的任何文本。也许这就是你没有得到任何回应的原因。