2013-07-18 77 views
1


我怎么能搜索里面多值字段
我的数据是这样的
筛选多值字段在Solr的

<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

您不应在查询中使用&,而应使用+或%20(空格)。 &分隔URL查询参数和状态的东西将不会作为q值传递。

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

你也可能会喜欢什么做的是这里使用过滤器的查询,而不是查询参数: q=city*Ak*&fq=state:Chandigarh

这将与“阿克”所有城市和限制结果查询只对那些符合国家=“昌迪加尔”

+0

链接感谢,但都试过,你在任何情况下上面提到的它是从城市返回的所有值特定状态 – Siva

+0

是所有选项你使用N-gram过滤器?如果是的话,solr将忽略状态:Chandigarh宁可使用状态:15,即15作为状态ID,假设您可以从db查找中获得状态ID。当我激活N-gram过滤器时,solr会消除我的非整数字段。通过调试查询看到 - 祝你好运。 –