gpt4 book ai didi

search - Grails可搜索的搜索BigDecimal范围

转载 作者:行者123 更新时间:2023-12-02 14:53:52 25 4
gpt4 key购买 nike

我有Grails项目,该项目的域具有多个字段,其中有一个字段“price”。
我将可搜索插件添加到项目中,并且可以通过常规搜索正常运行:

def searchResults = searchableService.search(params.q, params)

现在,我需要通过范围添加价格搜索。例如:价格在$ 100到$ 200之间。
我尝试了以下操作,但不起作用:
def searchResults = searchableService.search({
queryString(params.q)
lt("price", params.pmax?.trim().toBigDecimal())
},params)

如何实现范围搜索?
这是什么类型的数据类型无关紧要:整数,BigDecimal,长整数?

谢谢

最佳答案

我按这样的范围进行了搜索:

def searchResults = searchableService.search(params){
must(queryString(params.q) {
ge('price', params.pmax as BigDecimal)
le('price', params.pmin as BigDecimal)
})
}

[编辑]

我以前的解决方案无法完美运行。
用searchable进行数字搜索的正确方法,您需要先在域类中添加以下内容:
searchable {
price index: "not_analyzed", format : "0000000000"
}

然后进行搜索:
def searchResults = yourDomainClass.search("price:[" + (params.pmin ? params.pmin.trim().padLeft(10, "0") : "*"  )+ " TO " + (params.pmax ? params.pmax.trim().padLeft(10, "0") : "*"  )+ "]"

所需的所有内容都是因为在对数据进行索引时也会被文本化。

http://brettscott.wordpress.com/2011/11/19/lucene-number-range-search-integers-floats/

http://grails.org/Searchable+Plugin+-+FAQ

关于search - Grails可搜索的搜索BigDecimal范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14804951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com