【发布时间】:2012-11-17 04:55:52
【问题描述】:
我已经在 Solr 中索引了电影数据。基本查询按预期工作,但是当我对构面和 q 进行过滤查询时,结果不同。
查询/select?q=facetGenre:Drama&wt=xml返回结果
而查询/select?q=*.*&fq=facetGenre:Drama&wt=xml 不返回任何结果。
这可能是什么原因?请帮忙。
由于类型字段中有“\”,例如“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>
【问题讨论】:
-
facetGenre的字段类型是什么?如果不是,请尝试将其设置为字符串类型。 -
由于术语中可能有斜杠,我没有考虑将此字段映射到字符串:(。斜杠不适用于 SOLR 中的过滤器查询,或者我需要明确转义斜线?
-
本节最后一点是这样说的:wiki.apache.org/solr/CommonQueryParameters#fq
-
这个(和其他 SO 问题)也可能是相关的:stackoverflow.com/questions/8504477/…
-
确保使用
*:*而不是*.*
标签: solr