1


我如何在多值字段的数组中搜索
我的数据是这样的

 <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>

但不起作用
上述数据是单个文档

4

2 回答 2

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

于 2013-07-18T14:30:59.127 回答
0

您不应该在查询中使用 & 而是使用 + 或 %20 (空格)。& 分隔 url 查询参数和状态内容不会作为 q 的值传递。

尝试q=city:*Ak*+state:Chandigarhq=city:*Ak* state:Chandigarh

您可能还想做的是在此处使用过滤器查询而不是查询参数: q=city*Ak*&fq=state:Chandigarh

这将查询所有具有“Ak”的城市并将结果限制为仅具有 state='Chandigarh' 的城市

于 2013-07-18T12:04:16.693 回答