簡體   English   中英

使用 Hibernate Search/Lucene 標記雲?

[英]Tag Cloud with Hibernate Search/Lucene?

我們的 Web 應用程序有一個產品類別數據庫,其中有 n 個產品。 每個產品可以有 0 個或多個與之關聯的標簽。 所有這些對象都使用 Hibernate Search (JPA) 編制索引。 我們正在嘗試使用這些標簽構建標簽雲,以便更輕松地查看最流行的內容。 我們的代碼看起來像這樣......

FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(this.entityManager);

        SearchFactory searchFactory = fullTextEntityManager.getSearchFactory();
        IndexReader indexReader = searchFactory.getIndexReaderAccessor().open(ProductBean.class);
        TermStats[] termStats = null;
        int numResults = 500;
        String field = "tags.name";

        try {
            termStats = org.apache.lucene.misc.HighFreqTerms.getHighFreqTerms(indexReader, numResults, field,
                    new org.apache.lucene.misc.HighFreqTerms.DocFreqComparator());
        } finally {
            searchFactory.getIndexReaderAccessor().close(indexReader);
        }

此代碼按我們的預期工作,並為我們提供了一組 TermStats 對象,這些對象為我們提供構建標簽雲所需的評分信息。 但是,現在我們想在每個類別的基礎上構建標簽雲。 也就是說,我們希望能夠根據特定產品所在的類別過濾我們的結果。但是,我們還沒有找到一種方法來做到這一點,因為 IndexReader 似乎沒有允許我們附加任何類型的過濾器。

有沒有人完成過類似的事情? 有沒有更好的方法來使用 Hibernate Search 構建標簽雲?

我認為您可以嘗試使用 lucene 方面( https://lucene.apache.org/core/4_0_0/facet/org/apache/lucene/facet/doc-files/userguide.html

它們允許您添加某種“分組依據”並依靠搜索結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM