我很难在Solr中执行搜索。我的Solr有一个多值字段,如下文所示:
<int name="id">2166324592435</int>
...others fields
<arr name="Series">
<str>The Walking Dead<\str>
<str>Game of Thrones<\str>
<\arr>
多值字段系列具有文档引用的Tv系列。在上面的例子中,我的文档描述了“行尸走肉”和“权力的游戏”。我可以拥有一个,两个或更多系列文件,甚至没有系列文件。
我想要做的是在Solr中搜索。我想给出我想要的系列,Solr应该返回关于我的查询的文档。我试过但我不能这样做。我尝试了以下内容:
q=series:The Walking Dead or series:Game of Thrones or ...&wt=json
我想我做错了。这样做的正确方法是什么?
提前致谢
蒂亚戈
答案 0 :(得分:6)
尝试这样的事情:
series:("The Walking Dead" OR "Game of Thrones")
答案 1 :(得分:2)
除了@ user1452132的回答 -
当您搜索q=series:The Walking Dead
时,在the
搜索默认搜索字段时,系列字段中仅搜索walking dead
。
形成的查询将是系列:OR文本:(行尸走肉)
您可以使用请求网址中的debugQuery = on来调试查询。
您可以使用Dismax query handler使其更易于管理。
答案 2 :(得分:2)
使用fq
参数(过滤查询),
name:("Java" OR "Python")
name:("Java" AND "Web")
// multivalued fields
author_ids:(1733 OR 58)
author_ids:(1733 AND 58)
http://localhost:8983/solr/xxx/select?q=programming&fq=title%3A(&#34;爪哇&#34 + AND +&#34;网络&#34;)及重量= JSON&安培;缩进=真安培; DEFTYPE = edismax&安培; QF =标题&安培;停用词=真安培; lowercaseOperators =真
答案 3 :(得分:1)
根据搜索的目的,尝试以下两次搜索
系列:“行尸走肉”OR系列:“荆棘游戏”
系列:(行尸走肉)OR系列:(荆棘游戏)
答案 4 :(得分:0)
我认为您的实际问题是使用OR
作为小写。当您执行此类操作时,会在or
中搜索defaultTextField
值。如果您的查询中有空格,也不要忘记放置引号 - 而且您正在寻找完全匹配。