у меня есть индекс с некоторыми документами, 593 документа, которые содержат слово computer , и 51 документ, который содержит слово science , и 596 документов, которые содержат слова computerИЛИ наука , я хочу превзойти эти 596 документов, вот мой код:
public class Main
{
public static void main(String args[]) throws IOException, ParseException{
String[] champ ={"W", "A"};
BooleanQuery q = new BooleanQuery();
BooleanQuery qIntermediaire;
qIntermediaire = new BooleanQuery();
for(int i=0;i<champ.length;i++){
qIntermediaire.add(new BooleanClause(new FuzzyQuery(new Term(champ[i], "computer"), 0), BooleanClause.Occur.SHOULD));
}
q.add(new BooleanClause(qIntermediaire, BooleanClause.Occur.MUST));
qIntermediaire = new BooleanQuery();
for(int i=0;i<champ.length;i++){
qIntermediaire.add(new BooleanClause(new FuzzyQuery(new Term(champ[i], "science"), 0), BooleanClause.Occur.SHOULD));
}
q.add(new BooleanClause(qIntermediaire, BooleanClause.Occur.SHOULD));
Path indexPath = Paths.get("MonIndex");
Directory directory = FSDirectory.open(indexPath);
DirectoryReader reader = DirectoryReader.open(directory);
IndexSearcher iSearcher = new IndexSearcher(reader);
TopDocs topdocs = iSearcher.search(q, 10000);
ScoreDoc[] resultsList = topdocs.scoreDocs;
System.out.println(resultsList.length);
}
}
, по некоторым причинам это дает мне 461 документ: (*