有没有办法在app引擎全文搜索中给某些文档字段一个权重?

时间:2013-04-01 20:30:11

标签: google-app-engine full-text-search

在我的应用程序中,我希望搜索API在name字段中对匹配进行评分,高于其他字段中的匹配。

用户还可以填写“关于”消息,该消息包含更多文本,因此更有可能在那里发生匹配。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:3)

SortExpression(https://developers.google.com/appengine/docs/python/search/sortexpressionclass)提供了一种基于特定表达式设置排序的方法,但它只提供了文档分数(即不是每个字段)。

另一个(可能是个坏主意)是只使用名称字段搜索,使用像“name:my_search_term_here”这样的查询字符串

因此,据我所知,Google App Engine的搜索API无法在搜索过程中偏向某个字段(即类似于ApacheSolr Lucene中的^运算符)。

答案 1 :(得分:0)

我不知道Google AppEngine中的此功能。话虽如此,您可以分两步拆分此问题。首先在名称字段中搜索一个术语,它将为您提供一个文档列表,称之为list1。然后在不太重要的字段中搜索相同的术语。这会给你另一个列表,称之为list2。然后,您可以以任何您想要的方式组合这两个列表 - 即创建一个新列表3,它是list1和list2的串联,list1中的所有项目都在list2的项目之前。希望这会有所帮助。