Hibernate search - java full textsearch

Programovacie jazyky, rady, poradňa...
AllGoneDead
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 364
Registrovaný: 27 aug 2012, 9:03
Bydlisko: košice

Hibernate search - java full textsearch

Príspevok od používateľa AllGoneDead »

Ahojte,
potreboval by som poradit ako rozbehat fulltextove vyhladavanie, ktore kontroluje geolokaciu. Ak vyhladavam priamo pre Entitu(Address ), kde je dzka, sirka, tak mi to zbehne ok a dostanem zoznam adries. Problem nastava, ak chcem vyhladavat inu Entitu, ktora obsahuje kolekciu adries na zaklade geolokacie. Z toho co som pozeral na nete to vyzera, ze by som potreboval vlastnu implementaciu Field Bridge-u, ale netusim ako by to malo vyzerat :?
Taky basic nahlad ako to vyzera v kode:

Kód: Vybrať všetko

@Entity
@Indexed
@Spatial
public class Address {
	
	@Longitude
	private Double longitude;

	@Latitude
	private Double latitude;

	... + getters & setters

}

@Indexed
@MappedSupperclass
public abstract class Base {
	
	@IndexedEmbedded
	@OneToMany
	@FieldBridge // ??? 
	private Collection<Address> addresses;

	... + getters & setters

}

@Indexed
@Entity
public class Person extends Base {

	... + getters & setters

}

public class Searcher {

	 private QueryBuilder builder = ...

	public List<Person> searchForGeoLocation( double radius, double latitude, double longitude ) {	
		org.apache.lucene.search.Query luceneQuery = builder.spatial()
  			.onField("addresses")
  			.within( radius, Unit.KM )
  			.ofLatitude( latitude, )
 			.andLongitude( longitude )
  			.createQuery();
		return fullTextSession.createFullTextQuery( query, Person.class).list();
	}

}
Napísať odpoveď