MoreLikeThis搜索組件介紹

2018-11-30 11:53 更新

MoreLikeThis 搜索組件使用戶能夠查詢與結(jié)果列表中的文檔類似的文檔。

它通過(guò)使用原始文檔中的術(shù)語(yǔ)在索引中查找類似的文檔來(lái)做到這一點(diǎn)。

您可以通過(guò)三種方法使用 MoreLikeThis 搜索組件。第一個(gè),也是最常見(jiàn)的,就是將它用作請(qǐng)求處理程序。在這種情況下,您可以根據(jù)需要將文本發(fā)送到 MoreLikeThis 請(qǐng)求處理程序(如用戶單擊“類似文檔”鏈接時(shí))。

第二種方法是將其用作搜索組件。這是不太理想的,因?yàn)樗鼘?duì)每個(gè)返回的文檔執(zhí)行 MoreLikeThis 分析,這可能會(huì)降低搜索結(jié)果。

最后的方法是將其用作請(qǐng)求處理程序,但使用外部提供的文本。這種情況,也被稱為 MoreLikeThisHandler,將根據(jù)輸入文檔的文本提供索引中有關(guān)類似文檔的信息。

MoreLikeThis如何工作的

MoreLikeThis 基于文檔中的術(shù)語(yǔ)構(gòu)造 Lucene 查詢。它通過(guò)從定義的字段列表中提取 term 來(lái)實(shí)現(xiàn)這一點(diǎn)(請(qǐng)參閱下面的 mlt. fl 參數(shù))。為了獲得最佳結(jié)果,這些字段應(yīng)該已經(jīng)在 schema.xml 中存儲(chǔ)了詞條(term)向量。例如:

<field name="cat" ... termVectors="true" />

如果 term 向量不存儲(chǔ),MoreLikeThis 將從存儲(chǔ)的字段中生成 term。為了使 MoreLikeThis 正常工作,還必須存儲(chǔ) uniqueKey。

下一個(gè)階段使用 MoreLikeThis 參數(shù)定義的閾值來(lái)過(guò)濾來(lái)自原始文檔的 term。最后,使用這些 term 運(yùn)行查詢,并返回已定義的任何其他查詢參數(shù)(請(qǐng)參閱下面的 mlt. qf 參數(shù))和新的文檔集。

MoreLikeThis搜索組件參數(shù)

以下總結(jié)了 Lucene/Solr 支持的 MoreLikeThis 參數(shù)。這些參數(shù)可以與三種可能的 MoreLikeThis 方法中的任何一種一起使用。

  • mlt.fl 參數(shù)

    指定用于相似性的字段。如果可能,這些應(yīng)該已經(jīng)存儲(chǔ)termVectors。

  • mlt.mintf 參數(shù)

    指定最小 term 頻率(Minimum Term Frequency),即在源文檔中將忽略哪些 term 的頻率。

  • mlt.mindf 參數(shù)

    指定“最小文檔頻率”(Minimum Document Frequency),這是詞被忽略的頻率,至少在很多文檔中不會(huì)出現(xiàn)。

  • mlt.maxdf 參數(shù)

    指定“最大文檔頻率”,這是在多個(gè)文檔中出現(xiàn)的詞被忽略的頻率。

  • mlt.minwl 參數(shù)

    設(shè)置單詞將被忽略的最小字長(zhǎng)。

  • mlt.maxwl 參數(shù)

    設(shè)置單詞將被忽略的最大字長(zhǎng)。

  • mlt.maxqt 參數(shù)

    設(shè)置將包含在任何生成的查詢中的查詢條件的最大數(shù)量。

  • mlt.maxntp 參數(shù)

    設(shè)置未在 TermVector 支持下存儲(chǔ)的每個(gè)示例文檔字段中要解析的最大標(biāo)記數(shù)。

  • mlt.boost 參數(shù)

    指定查詢是否被有趣的術(shù)語(yǔ)“相關(guān)性”提升。它可以是“true”或“false”。

  • mlt.qf 參數(shù)

    使用與 DisMax 查詢解析器所使用的格式相同的查詢字段及其 boost。這些字段也必須在 mlt. fl 中指定。

MoreLikeThisComponent的參數(shù)

使用 MoreLikeThis 作為搜索組件返回響應(yīng)集中每個(gè)文檔的類似文檔。除了通用參數(shù)之外,還可以使用這些附加選項(xiàng):

  • mlt

    如果設(shè)置為true,激活MoreLikeThis組件并使得 Solr 返回MoreLikeThis結(jié)果。

  • mlt.count

    指定要為每個(gè)結(jié)果返回的相似文檔的數(shù)量。默認(rèn)值是5。

MoreLikeThisHandler的參數(shù)

以下總結(jié)了可通過(guò) MoreLikeThisHandler 訪問(wèn)的參數(shù)。它支持使用通用查詢參數(shù)進(jìn)行分面、分頁(yè)和過(guò)濾,但不能很好地處理備用查詢解析器。

  • mlt.match.include

    指定響應(yīng)是否應(yīng)包含匹配的文檔。如果設(shè)置為 false,則響應(yīng)看起來(lái)像正常的選擇響應(yīng)。

  • mlt.match.offset

    指定在主查詢搜索結(jié)果中的偏移量,以定位 MoreLikeThis 查詢應(yīng)在其上操作的文檔。默認(rèn)情況下,查詢對(duì) q 參數(shù)的第一個(gè)結(jié)果進(jìn)行操作。

  • mlt.interestingTerms

    控制MoreLikeThis組件如何為查詢提供 "interesting" 術(shù)語(yǔ)(頂部TF / IDF術(shù)語(yǔ))。支持三個(gè)設(shè)置。設(shè)置列表中列出了這些 term。設(shè)置沒(méi)有列出任何 term。設(shè)置細(xì)節(jié)列出了 term 以及每個(gè) term 使用的 boost 值。除非mlt.boost=true,否則所有條件都會(huì)有boost=1.0

MoreLikeThis查詢解析器

mlt 查詢解析器提供了一種機(jī)制,用于檢索類似于給定文檔的文檔,如處理程序。有關(guān) mlt 查詢解析器用法的更多信息,可在其他解析器部分找到。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)