【问题标题】:How to search on phrases in Spring Data Solr 1.0如何在 Spring Data Solr 1.0 中搜索短语
【发布时间】:2013-10-15 12:32:20
【问题描述】:

我有一个包含引用短语和其他词的搜索查询,并且想使用 spring-data-solr 1.0。

这是一个示例查询:dog "siamese cat" penguin

我一直在尝试类似的东西,

new Criteria("myfield").contains("dog")
        .and(new Criteria("myfield").contains("siamese cat"))
        .and(new Criteria("myfield").contains("penguin"));

这就是我一直在尝试的,直到我看到 contains() 在包含空格时抛出异常。

最近我在尝试.expression(),但不确定它是如何工作的,或者这是否是一个可行的解决方案。

有什么想法吗?谢谢/w

【问题讨论】:

  • .is() 似乎工作正常,但不确定这是否与 *siamese cat* 匹配。
  • 是的。 is 会在中间有空格的情况下做一个短语。但是 * 会被转义。表达式将采用给定的字符串,不做进一步处理。

标签: java spring solr spring-data spring-data-solr


【解决方案1】:

我用表达式解决它:

new Criteria("myfield").expression("\"siamese cat\"")

【讨论】:

  • 试试这个 .expression("(siamese AND cat)")
【解决方案2】:

这对我有用...因为空间是一个特殊的字符,只需将其转义:

new Criteria("myfield").expression("siamese\ cat")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    相关资源
    最近更新 更多