我有以下代码,非常感谢您的建议。
QueryParser queryParser = new QueryParser(searchTerm, analyzer);
Query query = queryParser.parse(searchTerm);
我的第一个问题是,这个“加倍”?因为我在构造函数和parse()方法中有“要搜索的字符串(= searchTerm)”。这真的需要吗? (为了进一步的使用,我需要一个Query对象)。如果我这样做,这甚至可能会带来一些负面影响吗?
我无法以编程方式指定要搜索的“默认字段”。在我的查询中,我写了“content:House”,并在“内容”字段中搜索。但是如何以编程方式指定“content:”是我的默认字段,用户只需输入“House”(然后lucene会自动搜索“content”字段)。
非常感谢
扬
答案 0 :(得分:5)
QueryParser
构造函数的第一个参数是默认搜索字段,即使javadoc没有那么明显。
所以你想要这个:
QueryParser queryParser = new QueryParser("content", analyzer);
Query query = queryParser.parse(searchTerm);