我是 solr 的新手,我有一个问题。
托管模式中的每个 fieldType 定义,您都可以指定索引分析器和查询分析器,如下所示:
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="lang/stopwords_en.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.StopFilterFactory" words="lang/stopwords_en.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
Run Code Online (Sandbox Code Playgroud)
因此,当我进行像“q:something”这样的查询时,如何指定“something”的字段,它的默认字段是什么?
小智 5
您将在请求处理程序中找到默认搜索字段,您需要在 conf/solrconfig.xml 中检查
检查“df”参数,
<str name="df">_text_</str>
Run Code Online (Sandbox Code Playgroud)
或者,如果您想在不更改 df 值的情况下查询特定字段,则需要按以下格式指定查询,
fieldname:something
Run Code Online (Sandbox Code Playgroud)
如果您的查询有多个令牌,您可以将其指定为,
fieldname:"something1 something2"
Run Code Online (Sandbox Code Playgroud)