需要帮助解决小Solr问题

时间:2010-02-01 17:23:25

标签: java php sql mysql database

我有一个String字段,用于存储双字区域名称。 例如:New York

事情是,每当我尝试查询该字段(area:New York)时,即使它与纽约完全一样存储,也不会出现任何结果。

为什么会这样?

如果我这样搜索,结果会出现:area:"New York"但是如果像这样搜索它们就不会出现:area:New

有什么想法吗?

这是schema.xml文件中的字段定义:

  <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
  <field name="area" type="string" indexed="true" stored="true" omitNorms="true"/>

如果您需要更多输入,请告诉我们!

由于

更新

   $fq.=" + area:$state";

我发送此信息,Solr收到此信息作为州内的变量(纽约)......

我怎样才能重写这个,所以它将变量发送为“纽约”(带双引号)......?

1 个答案:

答案 0 :(得分:1)

可能与保留关键字New发生冲突您是否尝试使用不同的双字区域检索类似结果,例如Las Vegas

此外,如果区域字段期望String始终在变量周围使用引号。

编辑:

我没有使用SOLR的任何经验,但假设area:$state持有New York,我会尝试在我的代码中插入引号,如下所示:

$fq.=" + area:\"$state\" ";

这可能不正确,但它可以帮助您指明正确的方向。