Why is SQL Server full-text search not matching numbers?

偶尔善良 提交于 2020-06-12 06:03:23

问题


I'm using SQL Server 2014 Express, and have a full-text index setup on a table.

The full-text index only indexes a single column, in this example named foo.

The table has 3 rows in it. The values in the 3 rows, for that full-text indexed column are like so ...

test 1
test 2
test 3 test 1

Each new line above is a new row in the table, and that text is literally what is in the full-text indexed column. So, using SQL Server's CONTAINS function, if I perform the following query, I get all rows back as matches, as expected.

SELECT * FROM example WHERE CONTAINS(foo, 'test')

But, if I run the following query, I also get all of the rows back as matches, which I am not expecting. In the following query, I only expected one row as a match.

SELECT * FROM example WHERE CONTAINS(foo, '"test 3"')

Lastly, simply searching for "3" returns no matching rows, which I also did not expect. I'd expect one matching row from the following query, but get none.

SELECT * FROM example WHERE CONTAINS(foo, '3')

I've read the MSDN pages on CONTAINS and full-text indexing, but I can't figure out this behavior. I must be doing something wrong.

Would anybody be able to explain to me what's happening and how to perform the searches I've described?


回答1:


While this may not be the answer, it solved my original question. My full-text index was using the system stop list. For whatever reason, certain individual numbers, such as "1" in "test 1", were being skipped or whatever the stop list does.

The following question and answer, here on SO, suggested disabling the stop list alltogether. I did this and now my full text searches match as I expected them to, at the expense of a larger full text index, it looks like.

Full text search does not work if stop word is included even though stop word list is empty



来源:https://stackoverflow.com/questions/24739687/why-is-sql-server-full-text-search-not-matching-numbers

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!