Arama sözcükleri yakın başka bir kelime ile yakın

(Yakın) bir yakınlık terimi kullanabileceğiniz bir CONTAINS yüklemi veya CONTAINSTABLE sözcükleri veya tümceleri birbirine yakın arama işlevi. İlk ve son arama terimlerini ayrı arama dışı şartlar sayısını da belirtebilirsiniz. Ayrıca, sözcükleri veya tümcecikleri herhangi bir sırada arayabilirsiniz veya sözcük ve tümcecikleri bunları belirttiğiniz sırada arayabilirsiniz. SQL Server 2012hem önceki destekler Genel yakınlık terimi, hangi artık önerilmiyor ve özel yakınlık terimi, yeni SQL Server 2012.

Bu Konuda

  • Özel yakınlık terimi

  • Dikkat edilecek diğer noktalar için yakınlık aramaları

  • Kaldırılan genel yakınlık terimi

Özel yakınlık terimi

Özel yakınlık terimi, aşağıdaki yeni özellikleri sunar:

  • Arama dışı şartlar, maksimum sayısını belirleyebilirsiniz veya maksimum mesafe, bu ayıran ilk ve son arama terimleri için bir eşleme oluşturur.

  • Dönem sayısı belirtirseniz, eşleşmeleri belirtilen sırada arama terimlerini içermesi gerektiğini belirtebilirsiniz.

Bir eşleşme olarak nitelemek için bir metin dizesinin gerekir:

  • Belirtilen arama terimleri ve sonunda bir başka belirtilen arama koşullarını başlayın.

  • Tüm belirtilen arama koşullarını içerir.

  • Arama dışı terim, ilk ve son arama terimleri arasında gerçekleşen stopwords dahil sayısı maksimum mesafe, küçük veya eşit belirtilen olmalıdır.

Temel sözdizimi aşağıdadır:

NEAR (

     {

        search_term [ ,…n ]

     |

        ( search_term,…n) , <maximum_distance>, <match_order> ]

     }

       )

[!NOT]

Hakkında daha fazla bilgi için <custom_proximity_term> sözdizimini görmek (Transact-sql) içerir.

Örneğin, 'Gamze' için arama olabilir 'Smith', aşağıdaki gibi iki dönem içinde:

CONTAINS(column_name, 'NEAR((John, Smith), 2)')

Eşleşen dizelerin bazı örnekler "John Jacob Smith'' ve "Smith, John". Dize "John Jones knows Fred Smith'' bir maç değil üç engelleyici olmayan arama terimleri içerir.

Şartları belirtilen sırada bulunabilir istemek için örnek yakınlık terimi için değiştirmek istiyorum NEAR((John, Smith),2, TRUE).Bu arar "John'' iki şartları içinde "Smith'' ama yalnızca "John'' önündeki "Smith". Soldan sağa, İngilizce gibi eşleşen bir dize örneği okunan bir dili "John Jacob Smith".

Sağdan sola, Arapça veya İbranice gibi okunan bir dili için tam metin altyapısı belirtilen koşulları tersten geçerlidir. Ayrıca, nesne Explorer'da SQL Server Management Studiootomatik olarak sağdan sola dillerde belirtilen kelime görüntülenme sırasını ters çevirir.

[!NOT]

For more information, see "yakınlık aramaları hakkında ek konuları," Bu konudaki.

Maksimum mesafe nasıl ölçülür

10 Ya da 25, belirli bir maksimum mesafe stopwords, dahil kaç arama dışı koşulları arasında belirtilen dizedeki ilk ve son arama terimleri oluşabilir belirler. Örneğin, NEAR((dogs, cats, "hunting mice"), 3)toplam sayısı arama dışı şartlar olduğu üç aşağıdaki satır döndürür ("enjoy","but", ve "avoid"):

"Cats enjoy hunting mice, but avoid dogs."

Dört arama dışı şartlarda maksimum mesafe aştığından aynı yakınlık terimi aşağıdaki satırı dönmek istiyorsunuz değil ("enjoy","but","usually", ve "avoid"):

"Cats enjoy hunting mice, but usually avoid dogs."

Özel yakınlık terimi diğer şartlar ile birleştirme

Diğer bazı koşullarla özel yakınlık terimi birleştirebilirsiniz. Sen-ebilmek kullanma ve (&), veya ( |), veya ve değil (&!) özel yakınlık terimi özel bir başkasıyla yakınlık terimi, basit bir terim ya da bir önek terimi birleştirmek. Örneğin:

  • CONTAINS('NEAR((term1,term2),5) AND term3')

  • CONTAINS('NEAR((term1,term2),5) OR term3')

  • CONTAINS('NEAR((term1,term2),5) AND NOT term3')

  • CONTAINS('NEAR((term1,term2),5) AND NEAR((term3,term4),2)')

  • CONTAINS('NEAR((term1,term2),5) OR NEAR((term3,term4),2, TRUE)')

Örneğin,

CONTAINS(column_name, 'NEAR((term1, term2), 5, TRUE) AND term3')

Özel yakınlık terimi genel yakınlık terimi ile birleştiremezsiniz ( term1 yakın term2), bir nesil terim (ISABOUT...) veya Ağırlıklı terimi (… BİÇİMLERİYLE).

Örnek: özel yakınlık terimi kullanma

Aşağıdaki örnek arama Production.Documenttablo AdventureWorks2008"ışık" sözcüğünü içeren tüm belge özetleri için örnek veritabanı kelime "ayraç" olarak aynı belge içinde.

USE AdventureWorks2012
GO

SELECT DocumentNode, Title, DocumentSummary
FROM Production.Document AS DocTable 
INNER JOIN CONTAINSTABLE(Production.Document, Document,
  'NEAR(bracket, reflector)' ) AS KEY_TBL
  ON DocTable.DocumentNode = KEY_TBL.[KEY]
WHERE KEY_TBL.RANK > 50
ORDER BY KEY_TBL.RANK DESC
GO

[YUKARI]

Dikkat edilecek diğer noktalar için yakınlık aramaları

Bu bölümde, hem genel hem de özel yakınlık aramaları etkiler dikkate anlatılmaktadır:

  • Arama terimlerinizi oluşumlarını örtüşen

    Bütün yakınlık aramaları, sadece örtüşmeyen oluşum her zaman bekliyoruz. Üst üste gelen arama terimleri asla oluşumlarını eşleşme olarak hak. Örneğin, arar, aşağıdaki yakınlık terimi düşünün "A'' ve "AA'' Bu sırada iki dönem maksimum uzaklığı ile:

    CONTAINS(column_name, 'NEAR((A,AA),2, TRUE')
    

    Gibi olası eşleşmeleri olan "AAA","A.AA", ve "A..AA". Sadece içeren satırları "AA'' eşleşmeyecektir.

    [!NOT]

    Belirtebilirsiniz, örneğin, çakışan terimler NEAR("mountain bike", "bike trails")ya (NEAR(comfort*, comfortable), 5). Çakışan terimler belirterek, olası eşleşme permütasyon artırarak sorgunun karmaşıklığını artırır. Çok sayıda böyle örtüşen şartlar belirtirseniz, sorgu kaynakları yetersiz çalıştırabilir ve başarısız. Bu durumda, sorgu basitleştirmek ve yeniden deneyin.

  • Hem genel yakın hem de özel yakın (bakılmaksızın, en fazla bir mesafe olup olmadığı belirtilir) şartları yerine, aralarındaki mutlak uzaklığı arasındaki mantıksal uzaklığı gösterir. Örneğin, koşulları içinde farklı ifadeler veya paragraf içindeki cümleler gibi arabadan dışında aynı tümcecik veya tümceyi, ne olursa olsun gerçek yakınlıkları açısından daha kabul edilir, bunlar varsayım üzerinde daha az ilgili. Aynı şekilde, farklı paragraflar açısından birbirinden bile varlık olarak kabul edilir. Bir maç bir cümle, paragraf veya bölüm sonu yayılırsa, belge sıralama için kullanılan Aralık 8, 128 veya 1024, sırasıyla artar.

  • CONTAINSTABLE işlevi tarafından sıralaması üzerinde yakınlık açısından etkisi

    YAKIN CONTAINSTABLE işlevinde kullanıldığında, bir belgedeki her şarkıları ilk ve son arama terimleri arasındaki mesafe yanı sıra uzunluğu görelidir sayısını her belge sıralamasını etkiler. Eğer eşleşen arama terimlerini genel yakınlık terimi için >50 mantıklı hükümler dışında belge üzerinde dönen sırası 0'dır. Tamsayı olarak maksimum mesafe belirtmeyen bir özel yakınlık terimi için belgeyi içeren tek bulunmuş olan boşluğu >100 mantıksal koşullarını bir sıralama 0 alacaksınız. Özel yakınlık arama sıralaması hakkında daha fazla bilgi için bkz: SIRASI ile sınırla Arama sonuçları.

  • transform noise wordsServer seçeneği

    Değeri transform noise wordsetkileri nasıl SQL Serveryakınlık aramaları belirtilmişse stopwords davranır. Daha fazla bilgi için, bkz. Dönüşüm etkisiz sözcükler sunucu yapılandırma seçeneği.

[YUKARI]

Kaldırılan genel yakınlık terimi

Önemli notÖnemli

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.We recommend that you use özel yakınlık terimi.

Belirtilen arama terimlerini tüm belgede arama dışı terim sayısı ne olursa olsun iade edilecek bir eşleşme gerçekleşmelidir genel yakınlık terimi gösterir ( mesafe) arama terimleri arasında. Temel sözdizimi aşağıdadır:

{ search_term { NEAR | ~ } search_term } [ ,…n ]

Örneğin, aşağıdaki örneklerde, kelime 'tilki' ve 'tavuk' hem de, bir maç üretmek ya da sırayla görünmelidir:

  • CONTAINS(column_name, 'fox NEAR chicken')

  • CONTAINSTABLE(table_name, column_name, 'fox ~ chicken')

[!NOT]

Hakkında bilgi <generic_proximity_term> sözdizimini görmek (Transact-sql) içerir.

For more information, see "yakınlık aramaları hakkında ek konuları," Bu konudaki.

Genel bir yakınlık terimi diğer şartlar ile birleştirme

Sen-ebilmek kullanma ve (&), veya (|), veya ve değil (&!) yakınlık terimi, basit bir terim ya da bir önek terimi genel yakınlık terimi genel başka bir ile birleştirmek. Örneğin:

   CONTAINSTABLE (Production.ProductDescription,
      Description, 
      '(light NEAR aluminum) OR
      (lightweight NEAR aluminum)'
   )

Genel yakınlık terimi ile bir özel yakınlık terimi gibi birleştiremezsiniz NEAR((term1,term2),5), a Ağırlıklı terimi (ISABOUT...) veya bir kuşak terimi (… BİÇİMLERİYLE).

Örnek: Genel yakınlık terimi kullanma

Aşağıdaki örnek, "ışık" sözcüğü için arama için genel yakınlık terimi kullanır. kelime "ayraç" olarak aynı belge içinde.

USE AdventureWorks2012
GO

SELECT DocumentNode, Title, DocumentSummary
FROM Production.Document AS DocTable INNER JOIN
  CONTAINSTABLE(Production.Document, Document,
  '(reflector NEAR bracket)' ) AS KEY_TBL
  ON DocTable.DocumentNode = KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK DESC
GO

CONTAINSTABLE aynı sonucu elde etmek açısından da ters çevirebilirsiniz dikkat edin:

CONTAINSTABLE(Production.Document, Document, '(bracket NEAR reflector)' ) AS KEY_TBL

Önceki sorgu yakın anahtar sözcük yerine tilde karakteri (~) kullanın ve aynı sonuçları elde:

CONTAINSTABLE(Production.Document, Document, '(reflector ~ bracket)' ) AS KEY_TBL

İkiden fazla sözcük veya tümcecik arama koşullarına belirtilebilir. Örneğin, yazmak mümkündür:

CONTAINSTABLE(Production.Document, Document, '(reflector ~ bracket ~ installation)' ) AS KEY_TBL

Buna göre "ışık" Aynı belgede "ayraç" ve "ayraç" olarak olmalıdır "Yükleme" olarak aynı belge içinde olmalıdır.

[YUKARI]

Ayrıca bkz.

Başvuru

CONTAINSTABLE (Transact-sql)

(Transact-sql) içerir

Kavramlar

Tam metin arama sorgusuyla