<p>1. 在xunsearch中按区间搜索的方法</p><p>`$search->addRange('字段名','from','to')`</p><p>- 第一个参数为字段名</p><p>- 第二个参数为区间的起点(如果为null,则代表不设置下限)</p><p>- 第三个参数为区间的终点(如果为null,则代表不设置上限)</p><p>2. 在xunsearch中按字段排序的方法</p><p>`$search->setSort('字段名','true')`</p><p>- 第一个参数为字段名(需要排序的字段,在配置文件中其类型必须设置为number)</p><p>- 第二个参数设置排序方式,true为正序,false为倒序(注意,这里的参数是true/false而不是asc/desc)</p><p>3. 在xunsearch中addRange或者setSort等的不起作用的原因及解决方案</p><p>原因: setQuery() 相当于清除所有查询条件(这一点,我们可以在$search->search()的前后分别打印查询语句,对比判断)</p><p>解决方案:必须把 addRange, setSort 放在 setQuery 之后</p><p>$search->setQuery($q)->setLimit(...)->addRange(...)->setSort();</p><p>4. 关于如何解决xunsearch中总条数(getLastCount()/count())统计不准确的解决方案</p><p>在xunsearch中,往往会遇到第一页和最后几页统计的总条数不一样的情况(第一页统计的条数比后面的多).遇到这样情况,我们可以变相的通过统计最后一页的总条数来做到条数统一的目的</p><p>//获取首页总条数</p><p>$search->search();</p><p>$count1 = $search->getLastCount();</p><p>//跳转到最后,再次获取总条数</p><p>$page1 = ceil($count1/$rows);</p><p>$begin = ($page1-1)*$rows;</p><p>$search->setLimit($rows,$begin);</p><p>$search->search();</p><p>$count = $search->getLastCount();</p><p>//回到正常分页</p><p>$search->setLimit($rows,$begin_item);</p><p>$docs = $search->search();</p><p>5.只有区间查询时,addRange()无效的解决方案</p><p>原因:</p><p>由于不经过 setQuery 因此有些其它辅助的功能受到限制,比如不能进行结果高亮、不能通过 addWeight、addRange增加辅助搜索条件。</p><p>简单来说就是,使用addRange之前必须设置查询条件</p><p>解决方案:在使用addRange()之前,先设置一个空条件查询:</p><p>$search->setQuery('');</p><p>根据手册介绍:空查询代表查询全部数据</p><p>6. 以后遇到了再补充…..</p>