1

我已经在 Solr 中索引了电影数据。基本查询按预期工作,但是当我对构面和 aq 进行过滤查询时,结果不同。

查询/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>
4

1 回答 1

2

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

select?q=*:*意味着匹配任何字段中的任何值。

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

于 2012-11-17T11:53:55.543 回答