Lucene 搜索方法(词条搜索)
词条搜索是LUCENE最为简单的一种搜索方式,通过对某个固定的词条的指定,它实现检索索引中存在该词条的所有文档。
例子:
package com;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
public class TermQueryDemo {
/**
* @param args
*/
public static void main(String[] args) {
try {
IndexSearcher search = new IndexSearcher("d://dbindex");
Term t = new Term("phoneNumber","13538946680");
Query query = new TermQuery(t);
Hits hits = search.search(query);
for(int i=0;i<hits.length();i++)
{
System.out.println(hits.doc(i));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意:
一个TERM包括两个信息,分别为词条本身文本内容和词条所在的FIELD的信息。
上面的结果表示查询出phoneNumber=13538946680的结果。
词条搜索的核心是跟具体的分词器有关系,如果用的是标准分词器StandarAnalyzer他是将所有的词分成一个一个的,所以词条查询的时候只能是一个汉字才可以找的到。如果用庖丁的话,庖丁是按照一个词组一个词组来分词,那么就词条查询就可以查询词组。