我认为这是solr psedo-doc
<doc>
<field name="title"/>
<field name="name"/>
<field name="keywords"/>
</doc>
一些文档将有关键字"up",这意味着它们应该首先出现(尽管它们的初始订单位置),而且只有当成为搜索结果的一部分时才会出现。
,所以让我说我有:
doc1('title1','Bob, Alice','people, up, couple')
doc2('title2','Smart Phone, Laptop, Bob','devices, electronics')
如果我用“title:title 2 name:Bob”查询,那么我应该先得到doc1 (它有'up‘关键字)。如果我使用"name:Bob“进行查询,出于同样的原因,我仍然可以获得doc1。如果我使用"name:Laptop“查询,那么我应该只在我的结果中获得doc2。不应该包含doc1,因为它与我的搜索查询不匹配。
有什么建议吗?
发布于 2011-09-08 06:48:03
你有几种选择去做这样的事情:
例如(使用dismax处理程序):
/select?defType=dismax&q=...&bq=keywords:"up"^1000
发布于 2011-09-08 06:42:55
这可以通过Solr的查询时间增加来解决。因此,按照Solr关联常见问题的指导-您可以在所有查询中添加一个额外的增强搜索项,例如title:title2 name:Bob keywords:up^2
您还可以在索引时为每个文档确定up关键字是否存在,然后将其存储在架构中的附加字段(例如布尔值)中,并根据该布尔字段提升查询结果。
https://stackoverflow.com/questions/7349541
复制