0
私はマッチフレーズクエリを使用しようとしていますが、結果は得られません。私はここで何が間違っていたのですか?私はLucene.net問題が解決Lucene.net matchphaseクエリが機能しません
using (var dir = new RAMDirectory())
{
var queryText = "Bruce Wayne";
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);
var sampleDocs = new SortedSet<String>() { "Bruce Wayne", "Wayne Bruce", "Bruce Batman Wayne" };
using (var writer = new IndexWriter(dir, analyzer, create: true, mfl: IndexWriter.MaxFieldLength.LIMITED))
{
foreach (var sampleDoc in sampleDocs)
{
var doc = new Document();
doc.Add(new Field("id", Guid.NewGuid().ToString("N"), Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.Add(new Field("name", sampleDoc, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS));
writer.AddDocument(doc);
}
}
var searcher = new IndexSearcher(dir, true);
var query = new PhraseQuery()
{
Slop = 2
};
foreach (var item in queryText.Split(new [] {' '}, StringSplitOptions.RemoveEmptyEntries))
{
query.Add(new Term("name", item));
}
TopDocs docs = searcher.Search(query, 1000);
}
を小文字に忘れて'私は3つの結果を得ます)。問題はあなたが分析を検討していないということでしょうか?たとえば、「Bruce Wayne」は、首都のために結果を得られませんでした。 – femtoRgon