У меня есть экземпляр Solr, где я индексирую веб-страницы, и я хочу иметь возможность запрашивать некоторые части URL-адреса. Например. en.wikipedia.org/wiki/Main_Page
также должен соответствовать en.wikipedia.org
.PathHierarchyTokenizerFactory не разделяет URL-адреса
Для этого я создал поле под названием url_tokens
, которое копируется из поля url
и которое анализируется с использованием PathHierarchyTokenizerFactory
по времени индекса.
Я думал, что url_tokens
поле будет содержать en.wikipedia.org/wiki/Main_Page
, en.wikipedia.org/wiki
и en.wikipedia.org
, но это результат я получаю от интерфейса администратора запроса Solr:
...
"url": "http://en.wikipedia.org/wiki/Main_Page",
"url_tokens": [
"http://en.wikipedia.org/wiki/Main_Page"
],
...
Что я делаю неправильно?
Эти соответствующие части моего schema.xml:
<field name="url_tokens" type="url_tokens_type" indexed="true" stored="true" multiValued="true"/>
<field name="url" type="url" indexed="true" stored="true"/>
<copyField source="url" dest="url_tokens"/>
<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>
<fieldType name="url_tokens_type" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory" />
</analyzer>
</fieldType>
Вы попробовали запрос с частью URL-адреса, например 'en.wikipedia.org' – buddy86
@ buddy86 Спасибо, ваш комментарий заставлял меня думать в правильном направлении. – Boris