Apache Luceneを初めて使用しました。私はファセットライブラリと組み合わせて6.3.0という最新バージョンを使用しています。 は、私はgithubの上で見つかった例に基づいて:https://github.com/apache/lucene-solr/tree/master/lucene/demo/src/java/org/apache/lucene/demo/facetApache 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")
リターンを持っています。 何か間違っていますか?
dummy
dummy
dummy
dummy
そして、私はこのdoc.getField("dummy")
ような何かを行う場合、それは確かに最初のフィールド(著)を返します:
for(IndexableField myField:doc.getFields()){
System.out.println(myField.name());
}
次が印刷されています。私はこのような何かを行う場合は、さらに掘る
。
FacetFieldのソースコードを見るとは: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);
これはバグです:https://github.com/apache/lucene-solr/blob/branch_6_3/lucene/facet/src/java/org/apache/lucene/facet/FacetField.java すべてのファセットフィールドは「ダミー」で作成されているようですか?私の理解あたりとして
彼はLuceneのクラスFacetFieldに関する具体的な質問をしています - それは本当にSolrJに関連していないですし、私の知る限りのSolrとの統合? – MatsLindh
ありがとう、私は訂正を追加します:) –