solr索引字段保留空格并搜索它没有结果

时间:2015-11-14 10:31:34

标签: django solr solr-query-syntax

我正在使用solj和django。在我的架构中我有一个字段

<field name="function" type="text" indexed="true" stored="true" multiValued="true" />

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <!-- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> -->
    <!-- in this example, we will only use synonyms at query time
    <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
    -->
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

我有索引价值,如婚礼拍摄,婚礼,接待,婚礼前,鸡尾酒,婚礼后,订婚

我想搜索价值为&#34;婚礼拍摄&#34;当我使用()它给了我两个&#34;婚礼拍摄&#34;和#34;婚礼&#34;在场

http://localhost:8983/solr/realwedding/select?q=function%3A(wedding+shoot)&rows=100&fl=function&wt=json&indent=true

如果我使用&#34;&#34;它什么都不返回

http://localhost:8983/solr/realwedding/select?q=function%3A%22wedding+shoot%22&rows=100&fl=function&wt=json&indent=true

我想要的是在与全文匹配的情况下给出结果&#34;婚礼拍摄&#34;

提前致谢

1 个答案:

答案 0 :(得分:0)

这里有两个工具:

  • 管理控制台上的“字段分析”页面,您可以在其中查看索引和查询时间发生的情况
  • 调试参数(或[解释]转换器),它让您了解Solr如何“看到”并“执行”您的查询以及给定文档在搜索结果中的原因。

最重要的是,很难猜出那里发生了什么。答案应该在架构中以及为该请求提供服务的RequestHandler的定义中。