2016-12-15 14 views
0

我有一個名爲title的列。我想搜索這個專欄。當我使用單個詞如title:'sport'title:"sport"時沒有問題。兩者給予相同的記錄數量。在索引中選擇含有2個或更多沒有雙引號的單詞的查詢

我的問題是當我用2個或更多的單詞搜索沒有雙引號(雙引號給出確切的結果例如:title:"sport education")。

title:'sport education' - 返回不相關的記錄(更多標題的沒有運動或教育字)

+title:'sport education' - 返回的搜索title:'sport'/title:"sport"相同數量的紀錄。

我應該怎麼做才能使列中的任何一個搜索詞必須匹配?

注: Solr的版本6.3.0

預先感謝您!

回答

1

我敢打賭,你正在尋找的是以下參數鏈:

http://$solr_host:8983/solr/magazines/select&q=sport+education&df=title&q.op=OR 

讓我破譯它爲您提供:

  • Q =體育+教育。您可以免費使用這種自由形式的查詢。
  • df = title。在這裏您指定了搜索的默認字段。
  • q.op = OR(默認情況下,可以省略)。 $q將根據$df的字段類型被符號化和條款將通過OR這樣可以加盟:title:sport OR title:education

欲瞭解更多信息,你可以按照Common Query ParametersLocal Parameters in Queries

+0

看起來很完美......非常感謝!但是這隻適用於一列。我怎樣才能實現2列或3列相同? – Naga

1

解析您的查詢title:'sport education'看起來就像這樣

title:sporttext:education單引號不起作用爲雙引號後。

所以長期education中搜索默認的字段df(文字,檢查Solr中-config文件)

在架構文件中,您可能會複製其他許多領域爲使用copyfield等你拿其他文件(字段中的文本,其有教育)

您應該指定字段名稱來搜索不同字段中的不同字詞,如title:sport name:sachin

在使用雙引號的短語查詢title:"sport education"這會爲您提供標題字段爲sport education的所有文檔。

+0

感謝您的時間並在我的問題上撰寫答案。 – Naga

相關問題