无法在Solr中搜索两个以上的单词
我正在使用apache-solr-3.4.0。我可以使用单个单词进行搜索,但不能使用多个单词进行搜索。例如:无法在Solr中搜索两个以上的单词,solr,Solr,我正在使用apache-solr-3.4.0。我可以使用单个单词进行搜索,但不能使用多个单词进行搜索。例如:jobTitle:tester生成结果,但是jobTitle:java开发人员不返回任何结果 在我的schema.xml中,我为文本字段类型添加了如下代码: Solr还有一个NGRAMPilterFactory。尽量不要使用ngram标记器。我建议使用“WhitespaceTokenizer”,然后应用ngram过滤器 <filter class="solr.NGramFilterF
jobTitle:tester
生成结果,但是jobTitle:java开发人员
不返回任何结果
在我的schema.xml中,我为文本字段类型添加了如下代码:
Solr还有一个
NGRAMPilterFactory
。尽量不要使用ngram标记器。我建议使用“WhitespaceTokenizer
”,然后应用ngram过滤器
<filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="3" />
您的字段类型应如下所示:
<fieldType name="text_custom" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="10" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
您有几个选项,按易用性排序
(
和)
,这些部分将转到一个字段进行分组,例如作业标题:(java开发人员)
。不要简单地在它们周围加上引号“,这将作为不同的短语查询执行{!df=jobTitle}java developer
。这将使查询的所有部分都转到该字段假设Solr在每个空白处将搜索查询拆分为多个部分(实际上,这并不是那么简单,但足以作为一个开始)。每个部分都根据指定字段或默认字段进行处理。取自 该字段仅对其直接前面的术语有效,因此查询title:Do it right将在title字段中仅找到“Do”。它将在默认字段(在本例中为文本字段)中找到“it”和“right”
添加并重新启动了tomcat,但仍不工作。在apache或任何其他配置上是否需要执行任何操作?或者是否存在任何其他权限问题?在将字段类型添加到schema.xml之后。请为字段使用相同的字段类型。完成后,重新启动tomcat。如果您的更改正在反映,请参阅solr admin页面上的。请尝试su用引号引述以下术语:
jobTitle:“java开发人员”
否则查询将在jobTitle:java\u text\u:developer
处解释。您还可以传递“debugQuery=true”“查看您的查询,并在结果中查看Solr是如何解析您的查询的,并确保它符合您的预期。我同意@Hector。。。我错过了那部分。。。