我正在尝试使用搜索服务api搜索主题,我想使用多个单词来缩小搜索结果。例如,搜索"Tide"会返回许多结果,反映出这个词的不同含义和Freebase中的不同主题。然而,由于我对Tide作为一种洗涤剂和品牌的主题特别感兴趣,我想通过在搜索字符串中添加信息性单词来找到结果。例如,通过搜索"Tide+洗涤剂+家用+肥皂",我希望提高Tide与洗涤剂等相关的结果的分数。我曾预计这样的搜索将基于Lucene中的某种向量空间评分,因此并非所有术语都必须出现在索引主题文档中。但是,由于查询无法返回结果,因此看起来似乎所有单词都必须存在。
https://www.googleapis.com/freebase/v1/search?query=tide+detergent+household+soap&indent=true
返回结果:
{
"status": "200 OK",
"result": [
],
"cost": 6,
"hits": 0
}
有没有办法使用过滤器来解决这个问题?
谢谢你的帮助!
Freebase关键字搜索API确实接受多个关键字,但它主要根据主题名称进行索引,而不是根据与主题相关的文档中找到的关键字(如谷歌搜索)进行索引。Freebase目前没有所谓的"潮汐洗涤剂家用肥皂"的主题。
你的直觉是正确的,使用过滤器来获得你想要的结果。按类型/业务/品牌筛选应该会给你想要的东西:
https://www.googleapis.com/freebase/v1/search?query=tide&filter=(all+类型%3A%2Business%2Fbrand)&indent=真实