Term begin1 = new Term("longitude", "16000000"); Term end1 = new Term("longitude", "165000000"); RangeQuery ranQuery1 = new RangeQuery(begin1, end1, true); Term begin2 = new Term("latitude", "4500000"); Term end2 = new Term("latitude", "4600000"); RangeQuery ranQuery2 = new RangeQuery(begin2, end2, true); BooleanQuery bQuery = new BooleanQuery(); QueryParser queryParser = new QueryParser("name", new StandardAnalyzer()); queryParser.setDefaultOperator(QueryParser.Operator.AND); Query cityQuery = queryParser.parse("加油站"); bQuery.add(cityQuery, BooleanClause.Occur.MUST); bQuery.add(ranQuery1, BooleanClause.Occur.MUST); bQuery.add(ranQuery2, BooleanClause.Occur.MUST); 我用的2.4
还不行。。
索引只支持 like 'nnnnnn%' 模糊
而且数据一多,没怎么感觉到效率BOOS还叫我自己建索引(不是create 是自己写底层代码)
用Lucene的使用角度不对
Term end1 = new Term("longitude", "165000000");
RangeQuery ranQuery1 = new RangeQuery(begin1, end1, true); Term begin2 = new Term("latitude", "4500000");
Term end2 = new Term("latitude", "4600000");
RangeQuery ranQuery2 = new RangeQuery(begin2, end2, true); BooleanQuery bQuery = new BooleanQuery(); QueryParser queryParser = new QueryParser("name",
new StandardAnalyzer()); queryParser.setDefaultOperator(QueryParser.Operator.AND);
Query cityQuery = queryParser.parse("加油站"); bQuery.add(cityQuery, BooleanClause.Occur.MUST);
bQuery.add(ranQuery1, BooleanClause.Occur.MUST);
bQuery.add(ranQuery2, BooleanClause.Occur.MUST);
我用的2.4
我这样的 需求是使用 数据库好。还是用lucene好? 数据字段较短