フォルダーに Lucene インデックスを作成し、txt ファイルのコンテンツにインデックスを作成しています。ストップワードのインデックス作成を行わずにコンテンツを作成したいのですが、アナライザーを通過した後、実際には検索時にストップワードをオフにしましたが、すべてのテキスト インデックスが作成されました。私は以下のコードを置きます:
IndexWriter writer = new IndexWriter(new SimpleFSDirectory(indexDir),
new SpanishAnalyzer(Version.LUCENE_36),
create,
IndexWriter.MaxFieldLength.UNLIMITED);
if (!file.isHidden() && file.exists() && file.canRead()) {
String fileName = file.getName();
String type = Files.extension(file);
if(type==null)
{
type="";
}
Document d = new Document();
d.add(new Field("Name",fileName,
Store.YES,Index.ANALYZED,Field.TermVector.YES));
d.add(new Field("Type",type,
Store.YES,Index.ANALYZED));
if(("txt".equals(type.toLowerCase())) || ("log".equals(type.toLowerCase())))
{
String Content = Files.readFromFile(file,"ASCII");
d.add(new Field("Content",Content,Store.YES,Index.ANALYZED, Field.TermVector.YES));
}
}
writer.addDocument(d);
サンプルファイルの内容は「インストールディレクトリ」です。「a」、「to」、「of」の検索を実行しても何も見つかりません。これは、アナライザーを正常に通過したことを意味します。ツールを使用してインデックス LUKE を表示すると、フィールドに「to install to a directory of」が含まれていることがわかりますが、「install」と「directory」のみを含む Field.TermVector の外観を見て、表示したいのはそれだけですフィールド。
ありがとうございました。