Lucene.NET中的文档包装器不起作用

时间:2015-10-07 17:05:09

标签: c# lucene

我使用Lucene并为lucene索引的文档提供了一个包装类。此包装类在内部包含 Lucene.Net.Documents.Document 的实例。它看起来像这样:

export default class Login extends Component {
    constructor(props, context) {
        super(props, context);
        this.state = {
            username: null,
            errorCopy: null
        };
    }
    handleChange(e) {
        this.setState({errorCopy: 'Generic error copy'});
    }
    render() {
        return(
            <TextField
                hintText="Username"
                value={this.state.username}
                onChange={this.handleChange}
                errorText={this.state.errorCopy} />
        )
    }
}

我使用包装纸以便于操作。如果我想创建一个新记录添加到索引我执行以下操作:

public class Wrapper
{
    public Document Document { get; private set; }

    public Wrapper()
    {
        this.Document  = new Document();

        // Adding fields here...
        Document.Add(new Field("ID", "", Field.Store.YES, Field.Index.ANALYZED));
        ...
    }

    /// <summary>
    ///     Gets or sets the ID.
    /// </summary>
    public string ID
    {
        get { return this.Document.GetField("ID").StringValue; }
        set { this.Document.GetField("ID").SetValue(value); }
    }

    ...
}

我的问题是索引记录是完全空的。当我调试应用程序并检查变量&#34;包装器实例的Document-property时,我可以找到所有值。但它们并未存储在索引中。

有关于此的任何想法吗?

到目前为止我的进一步发现:

与此相比,我发现不使用包装器......如下所示......工作正常:

var w = new Wrapper();
w.ID = "5";

var writer = new IndexWriter(...);
writer.Add(w.Document);

我发现了这个问题+答案:https://stackoverflow.com/a/3364651/1623426他正在做类似的事情。但我的问题在哪里?

0 个答案:

没有答案