У меня есть база 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
Есть ли другой фильтр запросов или токенизатор, который я должен использовать?