mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-04-05 02:49:32 +00:00
Merge pull request #575 from eikek/category-search-fix
Category search fix
This commit is contained in:
commit
ffbec3502f
@ -1,10 +1,12 @@
|
||||
package docspell.analysis.nlp
|
||||
|
||||
import cats.Applicative
|
||||
|
||||
import scala.jdk.CollectionConverters._
|
||||
|
||||
import cats.Applicative
|
||||
import cats.effect._
|
||||
|
||||
import docspell.common._
|
||||
|
||||
import edu.stanford.nlp.pipeline.{CoreDocument, StanfordCoreNLP}
|
||||
|
||||
object StanfordNerClassifier {
|
||||
|
@ -164,6 +164,9 @@ trait DSL extends DoobieMeta {
|
||||
def ===(value: A)(implicit P: Put[A]): Condition =
|
||||
Condition.CompareVal(col, Operator.Eq, value)
|
||||
|
||||
def lowerEq(value: A)(implicit P: Put[A]): Condition =
|
||||
Condition.CompareVal(col, Operator.LowerEq, value)
|
||||
|
||||
def ====(value: String): Condition =
|
||||
Condition.CompareVal(col.asInstanceOf[Column[String]], Operator.Eq, value)
|
||||
|
||||
|
@ -5,6 +5,7 @@ sealed trait Operator
|
||||
object Operator {
|
||||
|
||||
case object Eq extends Operator
|
||||
case object LowerEq extends Operator
|
||||
case object Neq extends Operator
|
||||
case object Gt extends Operator
|
||||
case object Lt extends Operator
|
||||
|
@ -69,6 +69,8 @@ object ConditionBuilder {
|
||||
val colFrag = op match {
|
||||
case Operator.LowerLike =>
|
||||
lower(col)
|
||||
case Operator.LowerEq =>
|
||||
lower(col)
|
||||
case _ =>
|
||||
SelectExprBuilder.column(col)
|
||||
}
|
||||
@ -80,6 +82,8 @@ object ConditionBuilder {
|
||||
val dbfFrag = op match {
|
||||
case Operator.LowerLike =>
|
||||
lower(dbf)
|
||||
case Operator.LowerEq =>
|
||||
lower(dbf)
|
||||
case _ =>
|
||||
DBFunctionBuilder.build(dbf)
|
||||
}
|
||||
@ -89,6 +93,8 @@ object ConditionBuilder {
|
||||
val (c1Frag, c2Frag) = op match {
|
||||
case Operator.LowerLike =>
|
||||
(lower(c1), lower(c2))
|
||||
case Operator.LowerEq =>
|
||||
(lower(c1), lower(c2))
|
||||
case _ =>
|
||||
(SelectExprBuilder.column(c1), SelectExprBuilder.column(c2))
|
||||
}
|
||||
@ -131,6 +137,8 @@ object ConditionBuilder {
|
||||
op match {
|
||||
case Operator.Eq =>
|
||||
fr" ="
|
||||
case Operator.LowerEq =>
|
||||
fr" ="
|
||||
case Operator.Neq =>
|
||||
fr" <>"
|
||||
case Operator.Gt =>
|
||||
|
@ -36,7 +36,7 @@ object TagItemName {
|
||||
|
||||
def itemsInAllCategories(cats: NonEmptyList[String]): Select =
|
||||
intersect(
|
||||
cats.map(cat => Select(ti.itemId.s, taggedItems, t.category === cat).distinct)
|
||||
cats.map(cat => Select(ti.itemId.s, taggedItems, t.category.lowerEq(cat)).distinct)
|
||||
)
|
||||
|
||||
def itemsWithEitherTag(tags: NonEmptyList[Ident]): Select =
|
||||
|
Loading…
x
Reference in New Issue
Block a user