У меня есть база данных URL-адресов, которые я бы хотел найти. Поскольку URL-адреса не всегда написаны одинаково (возможно, или не имеют www), я ищу правильный способ URL-адресов и запросов. Я попробовал несколько вещей, и я думаю, что я близко, но не знаю, почему он не работает:Индексирование и запрос URLS в Solr
Вот мой пользовательский тип поля:
<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, я хотел бы этот запрос в соответствии с записью, индексированную , поэтому Я также использую WDF для разделения поискового запроса, , однако поисковый запрос заканчивается так:
myfield :("twitter com andersoncooper"), когда он действительно хочет, чтобы он соответствовал всем записям, которые имеют все следующие отдельные слова: twitter com andersoncooper
Есть ли другой фильтр запроса или токенизатор, который я должен использовать?
Вы когда-нибудь заканчивали сортировку этого? – Cyrus
Вы подсчитали, что нужно делать здесь? –