刚刚尝试了 GAE(1.7.7 Java) 全文搜索,发现搜索字符串是否为work, 令人惊讶的是它不会匹配working, worked, 或hardworking, homework, 我想知道我是否错过了 API 中的某些内容, 我阅读了教程但没有除了复数匹配之外,没有找到任何关于此的文档。
谢谢。
PS我尝试了搜索服务的单元测试,而不是在工作环境中。
刚刚尝试了 GAE(1.7.7 Java) 全文搜索,发现搜索字符串是否为work, 令人惊讶的是它不会匹配working, worked, 或hardworking, homework, 我想知道我是否错过了 API 中的某些内容, 我阅读了教程但没有除了复数匹配之外,没有找到任何关于此的文档。
谢谢。
PS我尝试了搜索服务的单元测试,而不是在工作环境中。
这是一个迟到的答案,但要跟进上一个答案,您想要做的事情是不可能使用基本 API 函数的。搜索 API 适用于全文搜索原则。为了解决这个问题,您可以标记您的可搜索数据预索引并将其存储在相关文档的字段中。
请参阅:部分匹配的 GAE 搜索 API
隐藏在文档中(但不幸的是不在运算符表中),有一个 '~' 运算符
要搜索精确查询的多个变体,请使用 ~ 运算符:
~"car" # 搜索 "car" 和 "cars"
不知道这会让你走多远。不幸的是,仅此而已。
请参阅https://developers.google.com/appengine/docs/java/search/overview#Queries_on_Fields
这方面的文档很少,但刚刚尝试过,它只适用于复数。
一种方法是对文档中的单词进行自己的词干提取(尽管您不会将其作为文本返回 ;-) 然后您可以对搜索词执行词干提取并能够匹配工作、工作等。