検索したい 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
使用すべき別のクエリ フィルターまたはトークナイザーはありますか?