zoukankan      html  css  js  c++  java
  • Lucene之拉框查询

    使用lucene做拉框查询  最简单不过了 直接看代码:

    private List<Document> spatialQuery0(String keyword,double minx,double miny,double maxx,double maxy){
    		List<Document>  lst=new ArrayList<Document>();
    		try{
    		File f=new File(heath_index_path);
    		if(!f.exists()){
    			f.mkdirs();
    		}
    		Directory d=FSDirectory.open(f);
    		Analyzer a=new IKAnalyzer();
    		
    		IndexSearcher searcher=new IndexSearcher(d, true);
    		BooleanQuery query=new BooleanQuery();
    //		xx   关键字
    		Query word=new QueryParser(Version.LUCENE_30, "comp_name", a).parse(keyword);
    		
    		//x  经度
    //		NumericRangeQuery  t1=ne//new NumericRangeQuery("x", "80.0", "120.0", true, true);
    		NumericRangeQuery<Double> lon=NumericRangeQuery.newDoubleRange("x", 8, minx, maxx, true, true);//new NumericRangeQuery<Double>("y",8,32,new Double(80.0),new Double(120.0),true,true);
    //		NumericRangeQuery<Number>
    		//y  维度 
    		NumericRangeQuery<Double>  lat=NumericRangeQuery.newDoubleRange("y", 8, miny, maxy, true, true);//new TermRangeQuery("y", "10.0", "40.0", true, true);
    		query.add(word,Occur.MUST);
    		query.add(lon, Occur.MUST);
    		query.add(lat, Occur.MUST);
    		//query result
    		TopDocs docs=searcher.search(query, Integer.MAX_VALUE);
    //		docs.
    //		TopDocsCollector<ScoreDoc>
    		//查询所有记录
    		for(int i=0;i<docs.totalHits;i++){
    			Document doc=searcher.doc(docs.scoreDocs[i].doc);
    //			System.out.println(doc.get("comp_name"));
    			lst.add(doc);
    		}
    		searcher.close();
    		d.close();
    		}catch(Exception e){
    			System.out.println("查询失败:"+e.toString());
    		}
    		return lst;
    	}
    

     经纬度范围表达 使用NumericRangeQuery 。中文分词使用IKAnalyzer来搞定。

  • 相关阅读:
    Ocelot简易教程(二)之快速开始2
    jQuery编程小结
    用户界面的一些好的设计理念
    JQuery插件开发教程
    ASP.NET MVC IOC 之AutoFac攻略
    ASP.NET MVC IOC 之Ninject攻略
    ASP.NET MVC IOC之Unity攻略
    ASP.NET MVC之单元测试分分钟的事
    C#秘密武器之扩展方法
    让AutoMapper在你的项目里飞一会儿
  • 原文地址:https://www.cnblogs.com/likehua/p/2730192.html
Copyright © 2011-2022 走看看