我有某些字段的 solr 架构:
<field name="id" type="integer" indexed="true" stored="true" required="true" multiValued="false" />
<field name="title" type="text" indexed="true" stored="true" multiValued="false" />
<field name="note" type="text" indexed="true" stored="true" multiValued="false" />
现在我用查询搜索它(其中%s是我的搜索字符串)
q={!boost b=recip(ms(NOW,date),3.16e-11,1,1)}%s&defType=dismax&qf=title^100 note
我需要每条记录的标签之类的东西。
<field name="tags" type="string" indexed="true" stored="false" multiValued="true" />
我如何提升该记录的结果,其中一个单词与“标签”字段中的一个值匹配?
更新
刚刚发现,如果我从我的 q 中删除 {!boost b=recip(ms(NOW,date),3.16e-11,1,1)},我的查询将完全按照我的意愿工作。但有了这个它不
更新 2
刚刚想通了,以前的“刚刚想通”是完全错误的。我让它适用于一些搜索字符串,但它对我来说效果不佳。我认为我需要这种行为:
在“标题”和“注释”字段中,我需要使用“AND”搜索单词,但在“标签”字段中,我需要使用“OR”进行搜索。我怎么能用dismax做到这一点?
我现在尝试使用 {!boost} 和查询功能,但没有任何好的结果