2016-09-29 176 views
2

例如,我有一個solr集合,其中包含一個名爲「key_phrase」字段的文檔。如何在`solr`中找到僅包含搜索詞的文檔

我知道很容易在搜索查詢中找到包含所有搜索詞的所有文檔。 (即使用mm = 100%的edismax

然而,我所要求的是如何恢復的文件,其「key_phrase」只包含搜索到的話,沒有別的。這個「key_phrase」也是一個multi_valued字段。

例如: 搜索查詢:「孩子們的足球齒輪」 查詢將返回下面的文件,其「key_phrase」字段包含:「孩子足球」。 它也將返回誰擁有兩個「key_phrase」值的文檔,例如「孩子齒輪」和「任何其他文字」,因爲他們中的一個不包含任何的話,是不是在搜索查詢。

在另一方面,它不會返回具有「對男孩孩子們的足球齒輪」,因爲此文件包含「男孩」,這是不存在的搜索查詢的文檔。

+0

實際上你的問題是什麼? –

+0

這將有助於瞭解迄今爲止嘗試的內容。看起來像一個正確的配置字段類型的搜索可能是你在找什麼? – TMBT

回答

0

您可以使用ShingleFilterFactory將字段編入索引來嘗試。

例如

<filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true"/> 

你可以參考這裏ShingleFilterFactory

<analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.ShingleFilterFactory"/> 
</analyzer> 

如果你有輸入作爲

在:"To be, or what?"

標記生成器濾鏡:"To"(1), "be"(2), "or"(3), "what"(4)

日期:"To"(1), "To be"(1), "be"(2), "be or"(2), "or"(3), "or what"(3), "what"(4)

相關問題