solr查询与空白区域

Bra*_*Rao 30 solr

我搜索一个单词,我得到结果与facet如下

<lst name="itemtype">
<int name="Internal">108</int>
<int name="Users">73</int>
<int name="Factory">18</int>
<int name="Supply Chain Intermediaries">6</int>
<int name="Company">1</int>
<int name="Monitor/Auditor firm">0</int>
</lst>
Run Code Online (Sandbox Code Playgroud)

然后我写了像fq = itemtype:Factory我得到的结果.但我没有得到fq = itemtype:供应链中介的结果.我正在考虑条件中的空间问题(供应链中介),我尝试使用urlencode(空格替换为%20).但没用.你能帮我解决一下吗?

更新:

对于单值,它工作正常.我像这样构建查询

http:localhost:8080/solr/select/?q=adidas&version=2.2&indent=on&facet=on&start=0&rows=20&fq={!raw f=itemtype}Supply Chain Intermediaries
Run Code Online (Sandbox Code Playgroud)

但我需要为多个值写.带有raw的原始Query 如下

http://localhost/solr/select/?q=adidas&version=2.2&indent=on&facet=on&start=0&rows=20&fq=(itemtype:Company itemtype:Supply Chain Intermediaries)
Run Code Online (Sandbox Code Playgroud)

你能帮我解决一下吗?

Uma*_*mar 38

您的itemtype字段是如何分析的?

如果是string类型,则使用:

fq=itemtype:"Supply Chain Intermediaries"
Run Code Online (Sandbox Code Playgroud)

否则你也可以尝试:

fq=itemtype:(Supply Chain Intermediaries)
Run Code Online (Sandbox Code Playgroud)

假设OR您的配置中是默认运算符并且text是默认搜索字段,您的查询将被转换为:

fq=itemtype:Supply OR text:(Chain Intermediaries)
Run Code Online (Sandbox Code Playgroud)

根据默认搜索字段搜索链和中介.

  • 这有帮助.谢谢.但是当我们有一些带有空格的字段名称时呢?请指教. (2认同)

小智 15

我尝试过这里提到的不同解决方案,但都没有奏效.但是我这样解决了:

fq=itemtype: *Supply\ Chain\ Intermediaries*
Run Code Online (Sandbox Code Playgroud)

这里的空间将被逃脱 \

上面的字符串将与字符串匹配 Lorem Supply Chain Intermediaries Ipsum

如果你有一个单词开头,Supply Chain Intermediaries Ipsum 那么就给

fq=itemtype: Supply\ Chain\ Intermediaries*
Run Code Online (Sandbox Code Playgroud)