2017-05-04 15 views
0

私が取り組んでいるアプリケーションは、solrを使ってエントリを索引付けして検索します。私はロジックとシンタックスについての情報を読んできました。現在、私には混乱しているコードがいくつかあります。このコードを書いた人が、した。Solrクエリ:空白を置き換える+

trimmedSearchField = SolrQueryUtil.escapeQueryString(trimmedSearchField).replaceAll("\\s+", "+"); 
      String qString = "+(title:" + trimmedSearchField + "^100 OR description_t:" + trimmedSearchField + "^10 " + 
        "OR +" + trimmedSearchField +"^1)"; 

私はちょうど.replaceAllメソッドに注意を払いたいと思っていますが、なぜ+で空白を置き換えたいのでしょうか?私の目標は、少しの検索バーをリファクタリングすることです。replaceAllコールを排除してより良い結果を得ることができます。

例:「Helen of Troy」と「Helen from Troy」の2つの要素。 replaceAllが存在すると、 "Helen of Troy"を検索するとreplaceAllが削除された最初の要素のみが表示されます(どちらも出現したい)

答えて

1

.replaceAll()連続した空白文字を1つの '+'にすると、「必要」を意味します。lucene syntax (and Solr)

これらのフィールドでは「trimmedSearchField」が必須です。

+0

問題は、これがURLを通過していないことです。それはsolrjに渡されています。そして今、すべての単語にブール演算子が追加されています。 – user3221287

+0

duh、編集済みの回答 – Persimmonium

関連する問題