2015-04-23 50 views
1

步驟我做:Solr的RELOAD更改/恢復模式更改

  1. 捲曲-u卡桑德拉 「http://localhost:8983/solr/admin/cores?action=CREATE&name=tweets.tweets_test&generateResources=true&reindex=true&deleteAll=true

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
 
<schema name="autoSolrSchema" version="1.5"> 
 
<types> 
 
<fieldType class="org.apache.solr.schema.TextField" name="TextField"> 
 
<analyzer> 
 
<tokenizer class="solr.StandardTokenizerFactory"/> 
 
<filter class="solr.LowerCaseFilterFactory"/> 
 
</analyzer> 
 
</fieldType> 
 
<fieldType class="org.apache.solr.schema.TrieDateField" name="TrieDateField"/> 
 
<fieldType class="org.apache.solr.schema.TrieLongField" name="TrieLongField"/> 
 
</types> 
 
<fields> 
 
<field indexed="true" multiValued="true" name="atnames" stored="true" type="TextField"/> 
 
<field indexed="true" multiValued="true" name="links" stored="true" type="TextField"/> 
 
<field indexed="true" multiValued="false" name="tweet_date" stored="true" type="TrieDateField"/> 
 
<field indexed="true" multiValued="false" name="tweet" stored="true" type="TextField"/> 
 
<field indexed="true" multiValued="true" name="hashtags" stored="true" type="TextField"/> 
 
<field indexed="true" multiValued="false" name="uid" stored="true" type="TrieLongField"/> 
 
<field indexed="true" multiValued="false" name="tweet_id" stored="true" type="TrieLongField"/> 
 
</fields> 
 
<uniqueKey>(uid,tweet_id)</uniqueKey> 
 
</schema>

我會的模式改變爲(我想要使用KeywordTokenizerFactory爲網址建立索引):

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
 
<schema name="autoSolrSchema" version="1.5"> 
 
<types> 
 
    <fieldType class="org.apache.solr.schema.TextField" name="TextField"> 
 
    <analyzer> 
 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
 
     <filter class="solr.LowerCaseFilterFactory"/> 
 
    </analyzer> 
 
    </fieldType> 
 

 
    <fieldType class="org.apache.solr.schema.TextField" name="TextFieldURL"> 
 
    <analyzer> 
 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
 
    </analyzer> 
 
    </fieldType> 
 

 
    <fieldType class="org.apache.solr.schema.TrieDateField" name="TrieDateField"/> 
 
    <fieldType class="org.apache.solr.schema.TrieLongField" name="TrieLongField"/> 
 
</types> 
 

 

 
<fields> 
 
<field indexed="true" multiValued="true" name="atnames" stored="true" type="TextField"/> 
 
<field indexed="true" multiValued="true" name="links" stored="true" type="TextFieldURL"/> 
 
<field indexed="true" multiValued="false" name="tweet_date" stored="true" type="TrieDateField"/> 
 
<field indexed="true" multiValued="false" name="tweet" stored="true" type="TextField"/> 
 
<field indexed="true" multiValued="true" name="hashtags" stored="true" type="TextField"/> 
 
<field indexed="true" multiValued="false" name="uid" stored="true" type="TrieLongField"/> 
 
<field indexed="true" multiValued="false" name="tweet_id" stored="true" type="TrieLongField"/> 
 
</fields> 
 
<uniqueKey>(uid,tweet_id)</uniqueKey> 
 
</schema>

  • 讓我們上傳的變化: 捲曲 「http://localhost:8983/solr/resource/tweets.tweets_test/schema.xml」 --data二進制@ tweets.tweets_test.xml -H「內容 - 類型:文本/ XML;字符集= UTF-8'

  • 獲取最新架構回,以確保它成功上傳: http://localhost:8983/solr/tweets.tweets_test/admin/file?file=schema.xml&contentType=text/xml;charset=utf-8

  • 看起來不錯 - 我看到我的變化。 (順便說一下,我做的變化不起作用,鏈接仍然被索引如下:「t.co」,「http」,...;可能是另一種討論)所以我嘗試重新加載:

  • 捲曲 「http://localhost:8983/solr/admin/cores?action=RELOAD&name=tweets.tweets_test&reindex=true&deleteAll=true

  • 獲取最新架構回: http://localhost:8983/solr/tweets.tweets_test/admin/file?file=schema.xml&contentType=text/xml;charset=utf-8

  • 沒有看到,我已上傳的任何變化,不知何故schema.xml中已經回到原來的狀態。

    想法?

    +0

    嗨,您使用的是什麼版本? – phact

    +0

    使用DSE:4.6.5,搜索4.6。 – Pavel

    回答

    1
    +0

    謝謝你的回覆!所以我不得不從一開始就手動加載模式(意味着CREATE核心沒有generateResources = true標誌),這樣才能工作? – Pavel

    +0

    是的,能夠修改架構。 :/ – phact

    +1

    你好@phact,我們已經升級到DSE 4.7.0,你知道這個版本是否解決了嗎? – Pavel