用注解来替换复杂的配置文件 package com.compass.model; import org.compass.annotations.Index; import org.compass.annotations.Searchable; import org.compass.annotations.SearchableId; import org.compass.annotations.SearchableProperty; import org.compass.annotations.Store; @Searchable public class User { private String ids; private Integer id; private String userName; private String sex; private String age; private String address; public User() { } public User(Integer id) { this.id = id; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public String getIds() { return ids; } public void setIds(String ids) { this.ids = ids; } @SearchableId public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @SearchableProperty(index = Index.UN_TOKENIZED, store = Store.YES) public String getAge() { return age; } public void setAge(String age) { this.age = age; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final User other = (User) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } @Override public String toString() { return "id=" + id + ", userName=" + userName + ", sex=" + sex + ", age=" + age + ", address=" + address + ", ids=" + ids; } } package com.compass.model; import org.compass.annotations.Index; import org.compass.annotations.Searchable; import org.compass.annotations.SearchableId; import org.compass.annotations.SearchableProperty; import org.compass.annotations.Store; @Searchable public class User { private String ids; private Integer id; private String userName; private String sex; private String age; private String address; public User() { } public User(Integer id) { this.id = id; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public String getIds() { return ids; } public void setIds(String ids) { this.ids = ids; } @SearchableId public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @SearchableProperty(index = Index.UN_TOKENIZED, store = Store.YES) public String getAge() { return age; } public void setAge(String age) { this.age = age; } @SearchableProperty(index = Index.TOKENIZED, store = Store.YES) public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final User other = (User) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } @Override public String toString() { return "id=" + id + ", userName=" + userName + ", sex=" + sex + ", age=" + age + ", address=" + address + ", ids=" + ids; } } package com.compass.model; import java.util.HashMap; import java.util.Iterator; import java.util.List; import org.compass.core.CompassHits; import org.compass.core.CompassQuery; import org.compass.core.CompassQueryBuilder; public class TestMain { /** * @param args */ private SearchManager searchManager; public void setup() { searchManager = new SearchManager(); searchManager.init(); } public void insert() { User user = new User(); user.setId(1); user.setIds("aaaa"); user.setUserName("吴琼"); user.setAge("20"); user.setSex("女"); user.setAddress("我北京"); User user2 = new User(); user2.setId(2); user2.setIds("bbbb"); user2.setUserName("张舒"); user2.setAge("20"); user2.setSex("男"); user2.setAddress("我北京"); searchManager.createIndex(user); searchManager.createIndex(user2); } public void insert2() { User user = new User(); user.setId(3); user.setUserName("吴琼"); user.setAge("20"); user.setSex("女"); user.setAddress("北京"); User user2 = new User(); user2.setId(4); user2.setUserName("张舒"); user2.setAge("21"); user2.setSex("女"); user2.setAddress("我哈尔滨"); User user3 = new User(); user3.setId(5); user3.setUserName("张舒"); user3.setAge("20"); user3.setSex("女"); user3.setAddress("我哈尔滨"); searchManager.createIndex(user); searchManager.createIndex(user2); searchManager.createIndex(user3); } public void delete(int id) { User user = new User(id); searchManager.delete(user); } public void delete(String field,String value) { searchManager.delete(field,value); } public void search(String key) { List<User> users = searchManager.find(key, 0,100); for (User user : users) { System.out.println(user.toString()); } } public void searchField(String field,String value){ searchManager.searchField(field, value); } public void searchAll(String key) { List<User> users = searchManager.findAll(key, 0,100); for (User user : users) { System.out.println(user.toString()); } } public static void main(String[] args) { TestMain t = new TestMain(); t.setup(); t.insert(); t.insert2(); t.searchAll("20 21"); System.out.println("it's over..."); //t.delete("ids","bbbb"); // t.search("我"); // t.delete(2); System.out.println("it's over1111"); //t.search("我"); //t.search("我"); // t.insert(); //System.out.println("it's over2222"); //t.search("我"); } }