1

我必须使用存储在单独表中的 100 多个单词(不区分大小写)进行查询。

Select a_id, text from xy
inner join keywords kw on contains(xy.text, kw.word)>0

这工作正常。但是现在我有一个关键字必须区分大小写。

有人知道如何在不创建区分大小写的索引并单独查询该关键字的情况下做到这一点吗?是否有可能忽略一个关键字,比如说“我们”,而只使用大写字母(“美国”)的关键字创建索引。

我尝试在停用词中添加“我们”,但没有成功。

4

1 回答 1

0

case_sensitive char(1) -- Y/N在表中添加一列keywords,然后:

select a_id, text
from xy
join keywords kw on contains(xy.text, kw.word) > 0
  and (kw.case_sensitive = 'N' or instr(xy.text, kw.word) > 0)

该索引仍将被使用,但对区分大小写的关键字有一个附加要求,即该关键字必须逐字出现在文本中。

于 2018-03-22T15:55:46.030 回答