簡體   English   中英

如何配置索引以使用JAVA API在ElasticSearch中使用BM25?

[英]How can I configure my index to use BM25 in ElasticSearch using the JAVA API?

我正在嘗試從MySQL數據庫遷移到ElasticSearch,因此我可以在每個字段上使用BM25相似性的全文搜索技術。 我正在使用JAVA從MySQL獲取條目並將它們添加到ElasticSearch索引中。

我正在使用JAVA 索引API構建索引,但我無法找到一種方法來設置我的字段上的BM25相似性。

我認為MySQL和dev的表產品表是一個索引, 產品是索引類型。

原始表產品包含以下字段:

  • ID
  • 標題
  • 描述

你可以在我的Github上找到代碼,如果你想看看。 這是我用Maven集成配置的分叉項目。

歡迎任何建議和任何幫助,謝謝!

我找到了問題的答案。

這是代碼:

Settings settings = ImmutableSettings
            .settingsBuilder()
            .put("cluster.name", "es_cluster_name"))
            // Define similarity module settings
            .put("similarity.custom.type", "BM25")
            .put("similarity.custom.k1", 2.0f)
            .put("similarity.custom.b", 1.5f)
            .build();

Client client = new TransportClient(settings);

在實例化客戶端之前,您似乎可以在“設置”中定義要使用的相似性模塊。

這里是一個由支持類似模塊列表elasticsearch的時刻:默認情況下,BM25,DFR,IB,LMDirichlet和LMJelinekMercer。 您可以在下面的設置中指定要使用的那個:

   .put("similarity.custom.type", "..." )

每個相似性都有自己的參數,您也可以配置它們以便正確使用它。

注意:代碼在elasticsearch 1.1.0上測試。

暫無
暫無

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

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