0

次の検索を実行しようとすると、何か間違ったことをしているに違いありません

http://localhost:8983/solr/collection1/select?q=url:www.abc.com&wt=xml&indent=true

このサイトの結果を返すのではなく、すべてを返すのです。schema.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>

host:www.abc.com を使用すると、機能します。

url フィールドを使用すると、一見正しくない結果になるのはなぜですか?

助けてくれてありがとう。

4

2 に答える 2

1

Solr 3.1 以降を使用していると仮定します。

StandardTokenizerFactory - Word Boundary ルールに基づいてトークンを作成します。これは、URL が複数のトークンに分割され、それらのいずれかに一致するとヒットと見なされることを意味します。

フィールドタイプにKeywordTokenizerFactoryを使用してみてくださいurl。これにより、完全な URL が保持され、それに対してのみ一致するはずです。

于 2013-08-08T01:19:08.010 に答える