我有一個Solr實例,我在這裏索引網頁,我希望能夠查詢部分網址。例如。 en.wikipedia.org/wiki/Main_Page
也應該自己匹配en.wikipedia.org
。PathHierarchyTokenizerFactory不拆分網址
爲此,我創建了一個名爲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>
你試過用'en.wikipedia.org'這樣的URL的一部分來查詢嗎? – buddy86
@ buddy86謝謝你的評論讓我覺得我的方向是正確的。 – Boris