在solr中搜索URL的结果不正确

在solr中搜索URL的结果不正确,url,solr,nutch,Url,Solr,Nutch,尝试运行以下搜索时,我一定是做错了什么 http://localhost:8983/solr/collection1/select?q=url:www.abc.com&wt=xml&indent=true 这不是给这个网站的结果回来,这是给一切回来。xml在url的设置方面非常普通 <fieldType name="text" class="solr.TextField" positionIncrementGap="100"> <

尝试运行以下搜索时,我一定是做错了什么

http://localhost:8983/solr/collection1/select?q=url:www.abc.com&wt=xml&indent=true
这不是给这个网站的结果回来,这是给一切回来。xml在url的设置方面非常普通

<fieldType name="text" class="solr.TextField"
        positionIncrementGap="100">
        <analyzer>
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.StopFilterFactory"
                ignoreCase="true" words="stopwords.txt"/>
            <filter class="solr.WordDelimiterFilterFactory"
                generateWordParts="1" generateNumberParts="1"
                catenateWords="1" catenateNumbers="1" catenateAll="0"
                splitOnCaseChange="1"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.PorterStemFilterFactory"/>
            <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        </analyzer>
    </fieldType>

<fieldType name="url" class="solr.TextField"
        positionIncrementGap="100">
        <analyzer>
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.WordDelimiterFilterFactory"
                generateWordParts="1" generateNumberParts="1"/>
        </analyzer>
    </fieldType>

如果我使用主机:www.abc.com,它可以工作

为什么使用url字段时会出现看似不正确的结果


感谢您的帮助。

假设您使用的是Solr 3.1或更高版本

StandardTokenizerFactory-它基于创建令牌。这意味着URL将被分解成多个标记,匹配其中任何一个标记都将被视为成功


请尝试为您的
url
字段类型使用。这应该保留完整的URL并仅与之匹配。

除了使用关键字TokenizerFactory外,还必须删除WordDelimiterFilterFactory。WDF拆分标点符号和其他分隔符上的标记。。。它们在URL中非常丰富。在进行更改并重新启动Solr或重新加载core之后,您必须重建索引


如果您不需要强制URL使用小写,另一种方法是:从TextField切换到StrField,完全取消analyzer配置。

非常感谢。我知道一定是这样的。这就是答案。哇!我很快就和他谈过了。不,没用。它仍在恢复所有结果。是的,我是4.2。非常感谢。如果我重建索引,这确实有效。我希望不必那样做。但你已经回答了我的问题。这两种方法都有效,我已经对它们进行了测试。再次非常感谢。