Fix sort when using fulltext only

This commit is contained in:
Eike Kettner
2021-03-08 00:46:36 +01:00
parent c6032ff279
commit 7b1ec97c97
5 changed files with 44 additions and 24 deletions

View File

@ -9,7 +9,6 @@
<logger name="docspell" level="debug" />
<logger name="emil" level="debug"/>
<logger name="docspell.store.queries.QItem" level="trace"/>
<root level="INFO">
<appender-ref ref="STDOUT" />

View File

@ -224,6 +224,10 @@ trait Conversions {
if (v.isEmpty) ItemLightList(Nil)
else ItemLightList(List(ItemLightGroup("Results", v.map(mkItemLightWithTags).toList)))
def mkItemListFtsPlain(v: Vector[OFulltext.FtsItem]): ItemLightList =
if (v.isEmpty) ItemLightList(Nil)
else ItemLightList(List(ItemLightGroup("Results", v.map(mkItemLight).toList)))
def mkItemLight(i: OItemSearch.ListItem): ItemLight =
ItemLight(
i.id,

View File

@ -497,14 +497,22 @@ object ItemRoutes {
)(settings: OSimpleSearch.Settings, fixQuery: Query.Fix, itemQuery: ItemQueryString) = {
import dsl._
def convertFts(res: OSimpleSearch.Items.FtsItems): ItemLightList =
if (res.indexOnly) Conversions.mkItemListFtsPlain(res.items)
else Conversions.mkItemListFts(res.items)
def convertFtsFull(res: OSimpleSearch.Items.FtsItemsFull): ItemLightList =
if (res.indexOnly) Conversions.mkItemListWithTagsFtsPlain(res.items)
else Conversions.mkItemListWithTagsFts(res.items)
backend.simpleSearch
.searchByString(settings)(fixQuery, itemQuery)
.flatMap {
case StringSearchResult.Success(items) =>
Ok(
items.fold(
Conversions.mkItemListFts,
Conversions.mkItemListWithTagsFts,
convertFts,
convertFtsFull,
Conversions.mkItemList,
Conversions.mkItemListWithTags
)