【发布时间】:2019-03-15 14:39:34
【问题描述】:
我正在使用 apache-solr-3.4.0。我可以使用一个单词进行搜索,但无法使用多个单词进行搜索。例如:jobTitle:tester 产生结果,但 jobTitle:java developer 不返回任何结果。
在我的 schema.xml 中,我为文本字段类型添加了如下代码:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize= "5"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="5"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
【问题讨论】:
-
尝试用引号将这些术语括起来:
jobTitle:"java developer",否则查询将被解释为jobTitle:java _text_:developer。您还可以将“debugQuery=true”传递给您的查询,并在结果中查看 Solr 如何解析您的查询并确保它按照您的预期进行。 -
我同意@Hector...我错过了那部分...
标签: solr