1

刚刚尝试了 GAE(1.7.7 Java) 全文搜索,发现搜索字符串是否为work, 令人惊讶的是它不会匹配working, worked, 或hardworking, homework, 我想知道我是否错过了 API 中的某些内容, 我阅读了教程但没有除了复数匹配之外,没有找到任何关于此的文档。

谢谢。

PS我尝试了搜索服务的单元测试,而不是在工作环境中。

4

2 回答 2

0

这是一个迟到的答案,但要跟进上一个答案,您想要做的事情是不可能使用基本 API 函数的。搜索 API 适用于全文搜索原则。为了解决这个问题,您可以标记您的可搜索数据预索引并将其存储在相关文档的字段中。

请参阅:部分匹配的 GAE 搜索 API

于 2013-06-11T01:58:44.400 回答
0

隐藏在文档中(但不幸的是不在运算符表中),有一个 '~' 运算符

要搜索精确查询的多个变体,请使用 ~ 运算符:

~"car" # 搜索 "car" 和 "cars"

不知道这会让你走多远。不幸的是,仅此而已。

请参阅https://developers.google.com/appengine/docs/java/search/overview#Queries_on_Fields

这方面的文档很少,但刚刚尝试过,它只适用于复数。

一种方法是对文档中的单词进行自己的词干提取(尽管您不会将其作为文本返回 ;-) 然后您可以对搜索词执行词干提取并能够匹配工作、工作等。

于 2013-05-08T09:31:16.197 回答