我有一个要搜索的 URL 数据库。因为 URL 并不总是写成相同的(可能有也可能没有 www),所以我正在寻找索引和查询 url 的正确方法。我尝试了一些事情,我想我很接近但不确定为什么它不起作用:
这是我的自定义字段类型:
<fieldType name="customUrlType" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
例如:
http://www.twitter.com/AndersonCooper 被索引时,会在不同的位置出现以下单词:http,www,twitter,com,andersoncooper
如果我只搜索 twitter.com/andersoncooper,我希望这个查询匹配被索引的记录,这就是为什么我也使用 WDF 来拆分搜索查询,但是搜索查询最终是这样的:
myfield:("twitter com andersoncooper") 当真的希望它匹配具有以下所有单独单词的所有记录时:twitter com andersoncooper
我应该使用不同的查询过滤器或标记器吗?