我用lucene来WildcardQuery搜索,但是却只能搜索到英文的,中文的搜索为空,在网上搜着原因是创建索引和搜索的编码不一致。但是我改了很长时间却一直没有效果。还请大家指点。
创建索引代码片段:
Field field1 = new Field("title",new String("搜索引擎的效率是很高的".getBytes("ISO-8859-1"),"UTF-8"),Field.Store.YES, Field.Index.TOKENIZED);
Field field1_1 = new Field("address","http://102.168.1.1",Store.YES,Index.UN_TOKENIZED);
doc1.add(field1);
doc1.add(field1_1);
搜索代码片段:
word = "*"+word+"*";
// Query query=new FuzzyQuery(new Term("content",ddd));
Query query = new WildcardQuery(new Term("content",word));
Searcher search = null;
try {
search=new IndexSearcher(path);
return search.search(query);
// return indexSearcher.search(query);
} catch (CorruptIndexException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
我一直改不好编码问题。还请高手直接给我修改代码来实现中文的检索。主要是我的字符串编码格式不对,但是一直没有找到问题。再次感谢了。
HUX布斯