我在使用 SOLR 进行搜索时遇到问题。我的架构定义如下:
<field name="_root_" type="string" indexed="true" stored="false"/>
<field name="_text_" type="text_general" multiValued="true" indexed="true" stored="true"/>
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="deleted" type="booleans" indexed="true" stored="true"/>
<field name="description" type="strings" indexed="true" stored="true"/>
<field name="favorites_count" type="tlongs"/>
<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
<field name="image" type="strings"/>
<field name="ingredients" type="strings" multiValued="true" indexed="true" stored="true"/>
<field name="level" type="tlongs"/>
<field name="portions" type="tlongs" indexed="true" required="true" stored="true"/>
<field name="preparation" type="strings"/>
<field name="rating" type="tdoubles"/>
<field name="ratings_count" type="tlongs"/>
<field name="subject" type="strings" indexed="true" required="true" stored="true"/>
<field name="visible" type="booleans" indexed="true" stored="true"/>
问题是当我尝试在“成分”字段上执行搜索时。
主要查询:
q=(主题:“短语搜索输入”或描述:“短语搜索输入”)AND成分:(“一些成分短语”)
或成分:搜索词
没有成分参数的查询可以正常工作,并输出正确的结果。
但是,在过滤成分时,无论我使用 fq 还是直接在查询字符串中,我都会出错或根本没有结果。
成分字段的数据如下:
成分:[成分 1,成分 2,成分 3 短语]
另一个问题是当成分具有“(”或“)”字符并且我正在搜索这样的短语时 - 无法匹配。
SOLR 版本:5.3
有人可以帮助我吗?
谢谢!