我有一个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收到此信息作为州内的变量(纽约)......
我怎样才能重写这个,所以它将变量发送为“纽约”(带双引号)......?
答案 0 :(得分:1)
可能与保留关键字New
发生冲突您是否尝试使用不同的双字区域检索类似结果,例如Las Vegas
?
此外,如果区域字段期望String
始终在变量周围使用引号。
我没有使用SOLR的任何经验,但假设area:$state
持有New York
,我会尝试在我的代码中插入引号,如下所示:
$fq.=" + area:\"$state\" ";
这可能不正确,但它可以帮助您指明正确的方向。