Solr Query:用+

时间:2017-05-04 01:52:27

标签: java 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"来自特洛伊的"海伦"分别。随着replaceAll的到来,搜索特洛伊的海伦"将只提供第一个元素,删除replaceAll,两者都会出现(这就是我想要发生的)

1 个答案:

答案 0 :(得分:1)

.replaceAll()调用只是将任何一系列连续的空格编码为单个“+”,这意味着lucene syntax (and Solr)中的“必需”

因此,在这些字段中强制使用'trimmedSearchField'。