Azure SQL 数据库:某些电子邮件的全文索引不起作用
Azure SQL Database: Full text index on certain emails does not work
我在用户 table 的用户名列中定义了全文索引。当搜索查询中电子邮件中的 + 符号后面有任何字符时,没有结果。 + 是电子邮件中的有效符号。如果您能解释为什么我看到这种行为以及对此的任何解决方法,我们将不胜感激。
/* returns result */
select * from AspNetUsers where contains(username, '"foo+77@gmail.com*"')
select * from AspNetUsers where contains(username, '"foo+*"')
/* does not return result */
select * from AspNetUsers where contains(username, '"foo+77*"')
select * from AspNetUsers where contains(username, '"foo+7*"')
select * from AspNetUsers where contains(username, '"foo+77@gmail*"')
在字符前添加反斜杠 7
returns 结果。
在查询中添加反斜杠 \
之前:
在查询中添加反斜杠 \ 后:
查询:
select * from AspNetUsers where contains(username, '"foo+*"')
select * from AspNetUsers where contains(username, '"foo+*"')
select * from AspNetUsers where contains(username, '"foo+@gmail*"')
我在用户 table 的用户名列中定义了全文索引。当搜索查询中电子邮件中的 + 符号后面有任何字符时,没有结果。 + 是电子邮件中的有效符号。如果您能解释为什么我看到这种行为以及对此的任何解决方法,我们将不胜感激。
/* returns result */
select * from AspNetUsers where contains(username, '"foo+77@gmail.com*"')
select * from AspNetUsers where contains(username, '"foo+*"')
/* does not return result */
select * from AspNetUsers where contains(username, '"foo+77*"')
select * from AspNetUsers where contains(username, '"foo+7*"')
select * from AspNetUsers where contains(username, '"foo+77@gmail*"')
在字符前添加反斜杠 7
returns 结果。
在查询中添加反斜杠 \
之前:
在查询中添加反斜杠 \ 后:
查询:
select * from AspNetUsers where contains(username, '"foo+*"')
select * from AspNetUsers where contains(username, '"foo+*"')
select * from AspNetUsers where contains(username, '"foo+@gmail*"')