请描述java实现搜索引擎的原理,java的中文分词技术有哪些?请写一段java程序实现在下面的一组数组中搜索引擎方式最准确的搜索关键词“北京市燕莎奥特莱斯购物中心” 
数组: 
北京市朝阳区东四环南路9号燕莎奥特莱斯购物中心 
北京市东四环南路9号燕莎奥特莱斯购物中心 
北京市朝阳区燕莎奥特莱斯购物中心 
北京市朝阳区东四环燕莎奥特莱斯购物中心