2012-07-20 20 views
4

我有一個對象,我想添加到我已經使用solrj的@Field批註註釋的我的Solr服務器,但是我找不到有關什麼Java數據類型的任何文檔用於Solr的位置類型。這裏是我想要添加的豆子:如何使用Solrj註釋索引經緯度

@Field 
private UUID id; 
@Field 
LatLonType location; // what should the Java data type of this field be??? 
@Field 
private EventType eventType; 
@Field 
private int maxCapacity; 
@Field 
private int minCapacity; 
@Field 
private double price; 
@Field 
private Date startDate; 
@Field 
private Date endDate; 

任何想法?

回答

4

Java端的適當類型是一個簡單的String,其中lat和lon都用逗號分開,例如, "1.2,3.4"

+0

我知道這是它是如何產生在XML,JSON等等。但是,如果我經歷了創建一個Java對象的麻煩,我想使用一個數據類型,使lat/long方便工作。串聯的字符串不是那樣的。聽起來像SolrJ沒有想到這一點?對或錯? – chubbsondubs 2012-07-20 18:31:33

+0

不,不幸的是,我不知道任何讓它更方便的東西。我想你可能想要像https://issues.apache.org/jira/browse/SOLR-1945這是未解決2年... – jeha 2012-07-20 19:20:55

3

這個問題最好的解決辦法是,如果你想使用addBean()方法(S)你的對象創建一個屬性和註釋,像這樣:

public class MyBean { 

    private double latitude; 
    private double longitude; 

    public String getLocation() { 
     return latitude + "," + longitude; 
    } 

    @Field 
    public void setLocation(String value) { 
     String[] split = value.split(","); 
     latitude = Double.parseDouble(split[0]); 
     longitude = Double.parseDouble(split[1]); 
    } 
} 
+3

對於讀這個:@Field不適用於獲取者。 – 2013-03-07 10:49:13