我有一个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\" ";
可能不正确,但可以帮助您指出正确的方向。