Class generator plugin for DBFlute to access to Solr.
- Add dependency on solrj to
pom.xml/build.gradle - Copy & paste directories under
freegentofreegenin your project's dbflute-client - Create
ControlFreeGen.vmunderfreegenand add following:
#parse("./solr/ControlFreeGenSolrJava.vm")
- locate
schema.xmlfor Solr to connect to and add name to the beginning of its filename to identify schema (e.g.mysolr_schema.xml) - Add properties to
config.propertiesandenv.properties, and adjust themaccording to your condition (seepropertiesfiles in this repo for instance)- Add a set of properties per schema
- Add schema information to
freeGenMap.dfprop(seedfprop/freeGenMap.dfpropfor instance)- Add a set of the information per schema
- Execute 'freegen' task of DBFlute
- by
mvntask - by
manage.sh
- by
// dismax with filter query
SolrPagingResultBean<SolrGeneral> list = solrExampleBhv.selectPage(cb -> {
cb.query().dismax(keyword, queryField -> {
queryField.put(SolrGeneralDbm.Name, null);
queryField.put(SolrGeneralDbm.Kana, 10);
queryField.put(SolrGeneralDbm.NameGeneral, 20);
queryField.put(SolrGeneralDbm.Synonym, null);
});
cb.specify().fieldUid();
cb.filterQuery().setCategory_Equal(someCategory);
cb.filterQuery().setProductionYear_RangeSearchTo(year);
cb.paging(10, 2)
});
// faceted search
SolrFacetResultBean itemFacetByGenre = solrExampleBhv.selectFacetQuery(cb -> {
cb.query().setStatus_Equal("new");
// specify facet counts
cb.addFacetQuery(queryBean -> queryBean.setGenre_Equal("pops"));
cb.addFacetQuery(queryBean -> queryBean.setGenre_Equal("classical"));
cb.addFacetQuery(queryBean -> queryBean.setGenre_Equal("jazz"));
});
SolrFacetResultBean itemFacetByYear = solrExampleBhv.selectFacetQuery(cb -> {
// Use specific field as facet
cb.facetSpecify().fieldProductionYear();
});Apache 2.0