IFieldExtractor
内容
[
隐藏
]
IFieldExtractor interface
提供从文档中提取字段的方法。
public interface IFieldExtractor
特性
姓名 | 描述 |
---|---|
Extensions { get; } | 获取支持的扩展。 |
方法
姓名 | 描述 |
---|---|
GetFields(Stream) | 从指定文档中提取所有字段。 |
GetFields(string) | 从指定文档中提取所有字段。 |
评论
了解更多
例子
示例演示如何实现接口IFieldExtractor
.
public class LogExtractor : IFieldExtractor
{
private readonly string[] extensions = new string[] { ".log" };
public string[] Extensions
{
get { return extensions; }
}
public DocumentField[] GetFields(string filePath)
{
FileInfo fileInfo = new FileInfo(filePath);
DocumentField[] fields = new DocumentField[]
{
new DocumentField("FileName", fileInfo.FullName),
new DocumentField("CreationDate", fileInfo.CreationTime.ToString(CultureInfo.InvariantCulture)),
new DocumentField("Content", ExtractContent(filePath)),
};
return fields;
}
private string ExtractContent(string filePath)
{
StringBuilder result = new StringBuilder();
using (StreamReader streamReader = File.OpenText(filePath))
{
string line = streamReader.ReadLine();
string processedLine = line.Remove(0, 12);
result.AppendLine(processedLine);
}
return result.ToString();
}
}
该示例演示了如何使用 custorm 提取器进行索引。
string indexFolder = @"c:\MyIndex\"; // 指定索引文件夹的路径
string documentsFolder = @"c:\MyDocuments\"; // 指定包含要搜索的文档的文件夹的路径
Index index = new Index(indexFolder); // 创建或加载索引
index.IndexSettings.CustomExtractors.Add(new LogExtractor()); // 将自定义文本提取器添加到索引设置
index.Add(documentsFolder); // 索引指定文件夹中的文档