【问题标题】:how to analyzed field for using apache lucene 4.0如何分析使用 apache lucene 4.0 的字段
【发布时间】:2013-12-06 13:17:11
【问题描述】:

我正在使用 lucene 4.0 现在我想分析使用 StringField 的字段.. 谁能告诉我有什么方法可以分析 String...

Document d = new Document(); 

d.add(new StringField("id_c", rs.getString("id_c"), Field.Store.YES, Field.Index.ANALYZED));
d.add(new StringField("id_c",  Field.Store.YES, Field.Index.ANALYZED));
d.add(new StringField("name",   Field.Store.YES, Field.Index.ANALYZED));
d.add(new StringField("dob",   Field.Store.YES, Field.Index.ANALYZED));
d.add(new StringField("dep",   Field.Store.YES, Field.Index.ANALYZED));
d.add(new StringField("salary",  Field.Store.YES, Field.Index.ANALYZED));

我怎样才能以这种方式使用 Field.Index.ANALYZED .. 任何方式来克服这个困难

【问题讨论】:

  • 您的问题不清楚。您能否举一些示例并说明您的查询的外观等。 StringField 是一个已编入索引但未标记化的字段:整个 String 值被索引为单个标记。例如,这可能用于“国家”字段或“ID”字段,或者您打算用于通过字段缓存进行排序或访问的任何字段。

标签: lucene


【解决方案1】:

Field.Index 已弃用,不应在 Lucene 4.X 中使用。您应该熟悉Field 类的子类,并使用适当的子类。 StringField 没有分析,TextField 是。如果你想要一个包含文本内容的分析字段,你应该使用TextField

大多数时候,标准Field 子类之一将提供您需要的内容。如果没有,您可以将 FieldType 传递到 Field constructor 以自定义字段的索引方式。

此外,通常,当您创建一个字段并将其添加到文档时,它也应该提供一个值,并且只有您添加的第一个字段实际上提供了一个值。所以这也需要看到。

【讨论】:

    猜你喜欢
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2013-09-05
    • 1970-01-01
    • 2019-06-11
    • 2011-07-22
    • 1970-01-01
    相关资源
    最近更新 更多