【发布时间】:2014-05-11 15:33:16
【问题描述】:
当我发出查询时
q=fulltext:marina zadar
Solr 仅使用“marina”一词来计算文档分数。如果我禁用索引词频和位置,则包含单词的文档和仅包含单词“marina”的文档的分数都是相同的。
这是我使用下面的请求处理程序时
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">100</int>
<str name="df">title</str>
</lst>
</requestHandler>
当我将另一个请求处理程序定义为时
<requestHandler name="/full" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">100</int>
<str name="df">fulltext</str>
</lst>
</requestHandler>
并向该处理程序发出查询
q=marina zadar
一切正常 - 包含两个搜索词的文档按预期得分更高。
为什么使用/select处理程序对文档评分时查询q=fulltext:marina zadar与其他示例不同?
这是我的 schma.xml
<schema name="example" version="1.5">
<fields>
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="id" type="long" indexed="true" stored="true" required="true" />
<field name="name" type="string" indexed="true" stored="true" />
<field name="subName" type="string" indexed="false" stored="true" />
<field name="nearName" type="string" indexed="false" stored="true" />
<field name="countryName" type="string" indexed="false" stored="true" />
<field name="title" type="text_general_edge_ngram" indexed="true" stored="false" multiValued="true" />
<field name="fulltext" type="text_general" indexed="true" stored="true" />
</fields>
<uniqueKey>id</uniqueKey>
<copyField source="name" dest="title" />
<copyField source="subName" dest="title" />
<!--<similarity class="com.pocketsail.solr.DescriptionSimilarity" />-->
<types>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="text_general_edge_ngram" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" omitNorms="true" omitTermFreqAndPositions="true">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>
</fieldType>
</types>
</schema>
【问题讨论】:
-
如果您想在 AND programinghacksandtricks.blogspot.in/2018/01/… 中搜索两个关键字