所有
我正在编写一个应用程序,我想用一组关键字扫描一些文本。我正在使用SOLR并将我的关键字索引为索引(关键字还包含各种字段,如标题,描述等)。
现在的问题是,如何通过SOLR查询使用关键字搜索自由文本数据。
例如:
我有一个Solr项目,其中包含关键字"字1"如果自由文本等于" bla bla word 1 bla bla"我应该收到这个项目。
感谢。
答案 0 :(得分:0)
我不确定我是否完全理解你的问题,但如果你问solr是否会检索文件:'word 1'在查询'bla bla word 1 bla bla'时,那取决于你的架构。
默认运算符是通过在架构中设置<solrQueryParser defaultOperator="AND|OR"/>
来定义的。
通常默认操作符为OR
,因此它会检索您的文档,但我建议您查看Solr schemaXML wiki page。
答案 1 :(得分:0)
它依赖于索引数据时使用的FieldType。 FieldType由分析仪组成,有两个分析仪。 一个用于查询,另一个用于索引。
如果您的索引分析器具有正确的标记器和过滤器,它将以正确的方式索引键。 与查询分析器相同。
fieldType
的示例<fieldType name="text_rev" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>