Tìm kiếm toàn bộ nội dung tìm kiếm từ chỉ thỉnh thoảng


0 Phiếu
Đã hỏi 25/5/2016 bởi calin (370 điểm)
Tôi có một table với một chỉ số văn bản đầy đủ. query này trả lại kết quả 2:
SELECT *
FROM SampleTable
WHERE ContentForSearch LIKE '% mount %'
ORDER BY 1
này query trả về 1 kết quả:
SELECT *
FROM SampleTable
WHERE CONTAINS(ContentForSearch, '"mount"')
ORDER BY 1
thêm một instance mới của từ "núi" để table Hiển thị trong tìm kiếm. Tại sao? Tôi đã được kiểm tra danh sách stopwords tốt nhất là tôi biết làm thế nào để. Điều này trả về không có kết quả:
SELECT *
FROM sys.fulltext_stoplists
này trả về không có kết quả:
SELECT *
FROM sys.fulltext_system_stopwords
WHERE stopword like '%mount%'
tôi cũng kiểm tra để xem nếu các chỉ số được Cập Nhật, điều này trở lại vào thời điểm hiện tại (trừ một vài phút) và 0, chỉ nhàn rỗi:
SELECT DATEADD(ss, FULLTEXTCATALOGPROPERTY('SampleTableCatalog','PopulateCompletionAge'), '1/1/1990') AS LastPopulated,
    FULLTEXTCATALOGPROPERTY('SampleTableCatalog','PopulateStatus')
tôi cũng đã làm một số tìm kiếm trong chuỗi không hiển thị trong CONTAINS để xem nếu các giá trị ASCII lạ cho kết quả (và có thể cung cấp truy vấn nếu cần thiết) , nhưng họ đã là chính xác giống như một trong đó đã làm xuất hiện. Trên một bản sao của cơ sở dữ liệu, một người chạy:
ALTER FULLTEXT INDEX ON SampleTable SET STOPLIST = OFF;
ALTER FULLTEXT INDEX ON SampleTable SET STOPLIST = SYSTEM;
và điều đó dường như để sửa chữa nó, nhưng tôi không có ý tưởng tại sao, và tôi không thoải mái thực hiện thay đổi tôi không hiểu.

Xin vui lòng đăng nhập hoặc đăng ký để trả lời câu hỏi này.


ToughDev Q&A là gì?

Trang web hỏi đáp cho các bạn đam mê lập trình, phát triển phần mềm và các vấn đề kỹ thuật khác. Với sự giúp đỡ của bạn, chúng tôi hy vọng sẽ xây dựng thành công một thư viện đầy đủ các câu hỏi và trả lời về tất cả các vấn đề có liên quan đến lập trình!







...