Почему оператор отрицания в SimpleQueryParser возвращает документы без релевантности? - PullRequest
0 голосов
/ 28 января 2020

Рассмотрим SimpleAnalyzer(LuceneVersion.LUCENE_48) с добавлением следующих документов ...

writer.AddDocument(new Document { new TextField("Query", new { Query = "Best pants in chicago" }.Query, Field.Store.YES) });
writer.AddDocument(new Document { new TextField("Query", new { Query = "Best pants in detroit" }.Query, Field.Store.YES) });
writer.AddDocument(new Document { new TextField("Query", new { Query = "Worst pants in chicago" }.Query, Field.Store.YES) });
writer.AddDocument(new Document { new TextField("Query", new { Query = "Worst pants in detroit" }.Query, Field.Store.YES) });
writer.AddDocument(new Document { new TextField("Query", new { Query = "hello world pants" }.Query, Field.Store.YES) });

с использованием SimpleQueryParser

, почему simpleQueryParser.Parse("chicago") возвращает

value: Best pants in chicago score: 0.7554128
value: Worst pants in chicago score: 0.7554128

, но simpleQueryParser.Parse("chicago -in") возвращает

value: Best pants in chicago score: 0.3149634
value: Worst pants in chicago score: 0.3149634
value: hello world pants score: 0.2759697

не только возвращает то, что мне не нужно, но, судя по всему, считает все не относящиеся к делу результаты (hello world pants), потому что я добавил оператор отрицания (-).

...