我在列上使用全文索引,填充索引(完全填充)。 列中的文本是varchar(max)葡萄牙语评论。
我认为所有查询都应该返回相同的内容,但它们不会:
select
*
from reviews
where
contains (ds_review, 'word1 NEAR word2')
(returns 0 rows)
select
*
from reviews
where
ds_review like '%word1 word2%'
(returns 1 row)
select
*
from reviews
where
contains (ds_review, ' word1 and word2 ')
(returns 0 row)
row:
word1 word2
答案 0 :(得分:0)
select * from reviews where ds_review like '%word1 word2%'
word1的%infront就像一个通配符,使其成为 _ _word1,其中空白是任何东西,只要在空白之后,该单词与word1匹配,就像前缀一样。 %fix可能会为您提供结果解除修复。
有关更多信息,请访问此处 http://www.w3schools.com/sql/default.asp
答案 1 :(得分:0)
我发现了问题:
对于葡萄牙语," melhor",在此示例" word1"中,是一个干扰词。创建一个自定义停止列表,删除" melhor"和" melhores"从噪音词解决了问题。