Lucene.Net
3.0.3
Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
Main Page
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Properties
Pages
demo
Demo.Common
FileDocument.cs
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
using
System;
19
using
System.IO;
20
using
Lucene.Net.Documents;
21
22
namespace
Lucene.Net.Demo
23
{
24
25
/// <summary>A utility for making Lucene Documents from a File. </summary>
26
27
public
static
class
FileDocument
28
{
29
/// <summary>Makes a document for a File.
30
/// <p>
31
/// The document has three fields:
32
/// <ul>
33
/// <li><c>path</c>--containing the pathname of the file, as a stored,
34
/// untokenized field;</li>
35
/// <li><c>modified</c>--containing the last modified date of the file as
36
/// a field as created by <a href="lucene.document.DateTools.html">DateTools</a>;</li>
37
/// <li><c>contents</c>--containing the full contents of the file, as a
38
/// Reader field;</li>
39
/// </ul>
40
/// </p>
41
/// </summary>
42
public
static
Document
Document
(FileInfo f)
43
{
44
45
// make a new, empty document
46
Document
doc =
new
Document
();
47
48
// Add the path of the file as a field named "path". Use a field that is
49
// indexed (i.e. searchable), but don't tokenize the field into words.
50
doc.
Add
(
new
Field
(
"path"
, f.FullName,
Field
.
Store
.YES,
Field
.
Index
.NOT_ANALYZED));
51
52
// Add the last modified date of the file a field named "modified". Use
53
// a field that is indexed (i.e. searchable), but don't tokenize the field
54
// into words.
55
doc.
Add
(
new
Field
(
"modified"
,
DateTools
.
TimeToString
(f.LastWriteTime.Millisecond,
DateTools
.Resolution.MINUTE),
Field
.
Store
.YES,
Field
.
Index
.NOT_ANALYZED));
56
57
// Add the contents of the file to a field named "contents". Specify a Reader,
58
// so that the text of the file is tokenized and indexed, but not stored.
59
// Note that FileReader expects the file to be in the system's default encoding.
60
// If that's not the case searching for special characters will fail.
61
doc.
Add
(
new
Field
(
"contents"
,
new
StreamReader(f.FullName, System.Text.Encoding.Default)));
62
63
// return the document
64
return
doc;
65
}
66
}
67
}
Generated on Thu Jan 3 2013 02:34:13 for Lucene.Net by
1.8.3