我在Linux机器上使用Open Search Server。一切运行良好,但任何搜索的构面结果数量似乎都限于我的索引中的文档数量,这是不正确的。
我正在为用户编制索引,用户也有标记。我的数据库中目前有2个用户,他们标有5个不同的标签。但是,如果我运行一个返回两个用户的搜索,则只返回2个不同的标签作为facet(应该有5个)。如果我然后将第三个用户添加到我的索引(并且新用户有0个标签),我的搜索将返回3个标签作为方面。
据我所知,这只是方面的一个问题。我能够在5个标签中的任何一个上成功过滤,并且我可以成功搜索所有5个标签的文本。
我的索引:
user_1 | tag_1, tag_2, tag_3, tag_4
user_2 | tag_2, tag_4, tag_5
搜索“”:
Results:
user_1
user_2
Facets Actually Returned:
tag_1 (1)
tag_2 (2)
Facets That Should Be Returned:
tag_1 (1)
tag_2 (2)
tag_3 (1)
tag_4 (2)
tag_5 (1)
搜索“tag_5”:
Results:
user_2
Facets Actually Returned:
tag_1 (0)
tag_2 (1)
Facets That Should Be Returned:
tag_1 (0)
tag_2 (1)
tag_3 (0)
tag_4 (1)
tag_5 (1)
之前有没有遇到过这个?有建议吗?
编辑:应该提到,多值在方面设置为“是”。
答案 0 :(得分:0)
OpenSearchServer知道两种计算方面的方法。 “单值方法”和“多值方法”。
修改您的搜索请求并将“多值”设置为“是”。
多值字段还有两种实现方式。一个使用“TermDocs”功能,另一个使用“TermVectors”。
要根据TermVectors测试一个,你必须在分面字段上启用TermVector(将其设置为Yes)并再次索引数据。