1
回答
lucene 4 query 解析错误 跪求解答
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

package my;
import org.apache.lucene.util.Version;

public class Text {
    public static void main(String[] args) throws IOException, ParseException {
        //建立索引
        Directory dir=new RAMDirectory();
        Analyzer analyzer=new StandardAnalyzer(Version.LUCENE_4_9);
        IndexWriterConfig config=new IndexWriterConfig(Version.LUCENE_4_9,analyzer);
        IndexWriter iwriter=new IndexWriter(dir,config);
        
        //建立文档
        Document document1=new Document();
        String title="hello";
        String content="how are you !";
        document1.add(new Field("title",title,TextField.TYPE_STORED));
        document1.add(new Field("content",content,TextField.TYPE_STORED));
        Document document=new Document();
        String title1="what are you doing";
        String content1="thank you very much!!";
        document.add(new Field("title",title1,TextField.TYPE_STORED));
        document.add(new Field("content",content1,TextField.TYPE_STORED));
        //加入索引
        iwriter.addDocument(document1);
        iwriter.addDocument(document);
        iwriter.close();
        //读取目录
        DirectoryReader dirRead=DirectoryReader.open(dir);
        //开始搜索
        IndexSearcher isearcher=new IndexSearcher(dirRead);
        //建立查询解析器
        QueryParser parser=new QueryParser(Version.LUCENE_4_9, "content", analyzer);
        Query query=parser.Query("you");
        ScoreDoc[] hits=isearcher.search(query, null, 1000).scoreDocs;
        System.out.println(hits.length+"个查询结果");
        for(int i=0;i<hits.length;i++){
            Document hitdoc=isearcher.doc(hits[i].doc);
            System.out.println(hits[i]+"搜索的结果title"+hitdoc.get("title"));
        }
        dirRead.close();
        dir.close();
    }
}
Exception in thread "main" org.apache.lucene.queryparser.classic.ParseException: Encountered "<EOF>" at line 1, column 0.
Was expecting one of:
    <NOT> ...
    "+" ...
    "-" ...
    <BAREOPER> ...
    "(" ...
    "*" ...
    <QUOTED> ...
    <TERM> ...
    <PREFIXTERM> ...
    <WILDTERM> ...
    <REGEXPTERM> ...
    "[" ...
    "{" ...
    <NUMBER> ...
    <TERM> ...
    "*" ...
    
    at org.apache.lucene.queryparser.classic.QueryParser.generateParseException(QueryParser.java:708)
    at org.apache.lucene.queryparser.classic.QueryParser.jj_consume_token(QueryParser.java:590)
    at org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:275)
    at org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:181)
    at my.Text.main(Text.java:51)

举报
顶部