【问题标题】:GAE Full Text Search: can only match exact word? how to search like contains(...)?GAE全文搜索:只能匹配确切的单词?如何搜索包含(...)?
【发布时间】:2013-05-08 09:03:33
【问题描述】:

刚试过GAE(1.7.7 Java)全文搜索,发现搜索字符串是work,奇怪的是它匹配workingworkedhardworkinghomework,我想知道我是否错过了 API 中的某些内容,我阅读了教程,但除了复数匹配之外没有找到任何关于此的文档。

谢谢。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      见:Partial matching GAE search API

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 2016-02-14
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多