我想使用 lucene
执行查询。但查找不仅应该基于输入,还应该基于第二个参数。
示例:假设 lucene 索引应包含 citynames
和 countrycodes
。
现在,在查找过程中我已经知道所需的城市名称应该位于哪个国家/地区。 所以我想通过城市名查询 lucene 索引,但告诉 lucene 只查看国家/地区代码匹配的城市名。
这可能吗?如果是,怎么办?
对于单个属性,我只需设置以下内容:
QueryParser q = QueryParser(Version matchVersion, String f, Analyzer a)
Query q = queryParser.parse(input);
但是 2 个属性又如何呢?
最佳答案
像这样的东西应该可以工作。未经测试,但您应该明白:
String countryCode = ....; // known in advance
QueryParser queryParser = new QueryParser(matchVersion, f, a);
Query cityNameQuery = queryParser.parse(inputWithCityName);
Query countryCodeQuery = queryParser.parse("+countrycode:" + countryCode);
BooleanQuery result = new BooleanQuery();
result.add(new BooleanClause(cityNameQuery, MUST));
result.add(new BooleanClause(countryCodeQuery, MUST));
关于java - 如何在lucene中查询2个索引字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25083076/