Lucene(Java) - 如何以编程方式指定默认搜索字段?

1 lucene

我有以下代码,非常感谢您的建议.

   QueryParser queryParser = new QueryParser(searchTerm, analyzer);
   Query query = queryParser.parse(searchTerm);
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是,这个"加倍"?因为我在构造函数和parse()方法中有"要搜索的字符串(= searchTerm)".这真的需要吗?(为了进一步的使用,我需要一个Query对象).如果我这样做,这甚至可能会带来一些负面影响吗?

而且我无法以编程方式指定要搜索的"默认字段".在我的查询中,我写了"content:House",并在"内容"字段中搜索.但是如何以编程方式指定"content:"是我的默认字段,用户只需输入"House"(然后lucene会自动搜索"content"字段).

非常感谢

一月

ska*_*man 5

QueryParser构造函数的第一个参数默认搜索字段,即使javadoc没有那么明显.

所以你想要这个:

QueryParser queryParser = new QueryParser("content", analyzer);
Query query = queryParser.parse(searchTerm);
Run Code Online (Sandbox Code Playgroud)