2014-02-22 144 views

回答

0

首先在schema.xml中創建一個多值「int」類型字段(說「intarray」)。您可以有以下字段定義。

<field name="intarray" type="int" indexed="true" stored="true" multiValued="true"/> 

請嘗試下面的代碼片段將數據索引到您的Solr中。更改該值並運行該程序以將多個整數數據編入相同的字段。

SolrServer solr = new HttpSolrServer("http://localhost:8983/solr"); 
SolrInputDocument document = new SolrInputDocument(); 
Map<String, Integer> partialUpdate = new HashMap<String, Integer>(); 
partialUpdate.put("add", 100); 

document.addField("id", "10000"); 
document.addField("intarray", partialUpdate); 
solr.add(document); 

solr.commit(); 

要進行查詢,請嘗試下面的代碼片段。

SolrServer solr = new HttpSolrServer("http://localhost:8983/solr"); 
SolrQuery query = new SolrQuery(); 
query.setQuery("intarray:100"); 
query.setStart(0); 
QueryResponse response = solr.query(query); 
SolrDocumentList results = response.getResults(); 
for (int i = 0; i < results.size(); ++i) { 
    System.out.println(results.get(i)); 
} 

希望這會有所幫助。

+0

如果我索引一個像「100 1000」這樣的字符串,並且查詢「100」,結果會不同於您使用的結果? –

+0

也可以將查詢設置爲:query.setQuery(「intarray:100 10000」) –

+0

請參閱您不能將字符串值設置爲整數類型字段。您必須在schema.xml中創建單獨的字符串類型singlevalued/multivalued字段。 – buddy86