0

クエリの速度を向上させることを期待して、Lucene を基本的な状況で実装しやすくするラッパー レイヤーである SimpleLucene をアプリに追加しています。ただし、コードを接続するために最も単純な作業コンセプトを実行した場合、結果は得られません。私は何を間違っていますか?

PS:最初にインデックスを作成するコードを省略しました。しかし、それは実行されており、cfs ファイルと fdt ファイルにはデータがあります。

var searchcriteria = new Search.Helpers.Mapping().MapToModel(postdata);
var searcher = new DirectoryIndexSearcher(
    new DirectoryInfo(@"c:\search.index"), 
    true);
var query = new TermQuery(
    new Term("situs", "1144 Air Cargo Ave, Sarasota, Fl, 34243"));

var searchService = new SearchService(searcher);
var luceneresults = searchService.SearchIndex(query);
4

1 に答える 1

1

クエリ オブジェクトは、入力値をそのまま正確TermQueryに一致させようとします。入力値とインデックス付きの値 ( の代わりなど) に違いがあると、一致はゼロになります。Lucene が一致するドキュメントを返すには、すべての大文字と小文字、スペース、および記号が同一である必要があります。微妙な違いを避けるために、事前に入力値とインデックス値を前処理することをお勧めします (つまり、インデックスを作成する前に小文字の文字列を使用し、すべての検索入力についても同様です)。FlFL

于 2013-07-15T13:48:49.973 に答える