如何在多值字段的数组内搜索
我的数据就像这样
<str name="Key">8</str>
<arr name="city">
<str>Achabal (NAC)</str>
<str>Addi Gam</str>
<str>Adeh Hall</str>
<str>Aho Paisan</str>
<str>Akin Gam</str>
<str>Akura</str>
.......
</arr>
<str name="state">Chandigarh</str>
我想在城市内搜索我正在尝试下面的查询
q=city:*Ak* AND state:Chandigarh <br>
但不工作
上述数据是单一文件
答案 0 :(得分:2)
多值字段与单值字段(从查询角度来看)没有区别。请注意,在您的查询中出现错误:SOLR不支持使用*符号作为搜索的第一个字符。
见下面的链接
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ReversedWildcardFilterFactory
http://solr.pl/en/2010/12/20/wildcard-queries-and-how-solr-handles-them
http://www.solrtutorial.com/solr-query-syntax.html
答案 1 :(得分:0)
你不应该使用&amp;在您的查询中,但改为+或%20(空格)。 &安培;分隔url查询参数和状态内容不会作为q的值传递。
尝试q=city:*Ak*+state:Chandigarh
或q=city:*Ak* state:Chandigarh
。
您可能还想做的是在此处使用过滤器查询而不是查询参数:
q=city*Ak*&fq=state:Chandigarh
这将查询所有具有'Ak'的城市,并将结果仅限于州='Chandigarh'
的城市