我有一个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将此消息作为州内(纽约)内部的变量接收...

我该如何重写它以便将变量发送为“ New York”(带双引号)...?

最佳答案

您是否尝试过使用其他两个单词区域(例如New)检索相似的结果,是否与保留关键字Las Vegas发生冲突?

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

编辑:

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

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


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

10-06 13:08
查看更多