Solr搜索文本中的关键词

时间:2014-05-13 16:41:36

标签: solr

所有

我正在编写一个应用程序,我想用一组关键字扫描一些文本。我正在使用SOLR并将我的关键字索引为索引(关键字还包含各种字段,如标题,描述等)。

现在的问题是,如何通过SOLR查询使用关键字搜索自由文本数据。

例如:

我有一个Solr项目,其中包含关键字"字1"如果自由文本等于" bla bla word 1 bla bla"我应该收到这个项目。

感谢。

2 个答案:

答案 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>