我是新来的Apache Lucene的。我正在使用最新版本:6.3.0与facet库结合使用。 基于我在GitHub上找到了例子:https://github.com/apache/lucene-solr/tree/master/lucene/demo/src/java/org/apache/lucene/demo/facet的Apache Lucene的回报小面从领域文档
我有以下文件
Document doc = new Document();
doc.add(new FacetField("Author", "Bob"));
doc.add(new FacetField("Publish Date", "2010", "10", "15"));
doc.add(new FacetField("Tags", "A"));
doc.add(new FacetField("Tags", "B"));
//[FacetField(dim=Author path=[Bob]), FacetField(dim=Publish Date path=[2010, 10, 15]), FacetField(dim=Tags path=[A]), FacetField(dim=Tags path=[B])]
System.out.println(doc.getFields());
//null
System.out.println(doc.getField("Author"));
doc.getFields()
返回所有的字段,但doc.getField("Author")
返回null。 我做错了什么?
进一步挖掘,如果我做这样的事情:
for(IndexableField myField:doc.getFields()){
System.out.println(myField.name());
}
打印以下:
dummy
dummy
dummy
dummy
如果我做这样的事情doc.getField("dummy")
它的确会回到第一场(作者) 。
看着FacetField源代码:https://github.com/apache/lucene-solr/blob/branch_6_3/lucene/facet/src/java/org/apache/lucene/facet/FacetField.java 似乎所有面域与“虚拟”创建:https://github.com/apache/lucene-solr/blob/branch_6_3/lucene/facet/src/java/org/apache/lucene/facet/FacetField.java
public FacetField(String dim, String... path) {
super("dummy", TYPE);
这是一个错误?
他问一个具体问题有关Lucene的类FacetField - 它不是真正相关SolrJ而据我所知,与Solr的集成? – MatsLindh
好感谢我将添加修正:) –