Ana sayfaya dön

# Sorgu Sözdizimi

Bu sayfa, "temel" den "gelişmiş" e giden mevcut sorgu söz dizimine genel bir bakış sunar. Sorgu sözdizimi, DocFetcher'ın temelindeki arama motoru olan Apache Lucene tarafından sağlanır ve Lucene'nin sorgu sözdizimi sayfasında daha teknik bir şekilde açıklanır.

## Boole Operatörleri

DocFetcher, `OR`, `AND` ve `NOT` boole operatörlerini destekler. Kelimeler boole operatörleri olmadan birleştirilirse, DocFetcher varsayılan olarak onları `OR` ile bitiştirilmiş gibi ele alır. Bundan hoşlanmıyorsanız, tercihler adresine gidebilir ve `AND` yi varsayılan olarak ayarlayabilirsiniz.

`OR`, `AND` ve `NOT` yerine sırasıyla `||`, `&&` ve `'-'` (eksi simgesi) de kullanabilirsiniz. Belirli ifadeleri gruplamak için parantez kullanabilirsiniz. İşte bazı örnekler:

Sorgu | Ortaya çıkan belgeler şunları içerir...
--- | ---
`köpek OR kedi` | ya da `köpek`, veya `kedi`, veya her ikisi
`köpek AND kedi` | hem `köpek` hem de `kedi`
`köpek kedi` | (varsayılan olarak `köpek OR kedi` sorgusuna eşdeğerdir)
`köpek NOT kedi` | `köpek`, ancak `kedi` değil
`-köpek kedi` | `kedi`, ancak `köpek` değil
`(köpek OR kedi) AND fare` | `fare`, ve `köpek` veya `kedi`, veya her ikisi

## Arama büyük/küçük harfe duyarlı değildir

DocFetcher küçük harfli ve büyük harfli karakterler arasında ayrım yapmaz, bu nedenle girdiğiniz kelimelerin tamamen küçük veya tamamen büyük olması veya her ikisinin karışımı olması önemli değildir. Tek istisna, her zaman büyük harfle girilmesi gereken `OR`, `AND`, `NOT` ve `TO`, anahtar kelimeleridir. (`TO` anahtar kelimesi için aşağıdaki 'aralık aramaları' bölümüne bakın.)

## Cümle Aramaları ve Gerekli Terimler

Bir kelime öbeğini (yani bir dizi kelime) aramak için, kelime öbeğini çift tırnak içine alın. Aranacak belgelerin belirli bir kelimeyi içermesi gerektiğini belirtmek için kelimenin önüne bir `'+'` koyun. Elbette bu yapıları boole operatörleri ve parantezlerle birleştirebilirsiniz. Yine bazı örnekler:

Sorgu | Ortaya çıkan belgeler şunları içerir...
--- | ---
`"köpek kedi fare"` | belirli bir sırayla `köpek`, `kedi` ve `fare` kelimeleri
`+köpek kedi` | kesinlikle `köpek` ve belki de `kedi`
`"köpek kedi" AND fare` | `köpek kedi` ifadesi ve `fare` kelimesi
`+köpek +kedi` | (`köpek AND kedi` sorgusuna eşdeğerdir)

## Joker karakterler

Soru işaretleri (`'?'`) ve yıldız işaretleri (`'*'`) bazı karakterlerin bilinmediğini belirtmek için kullanılabilir. Soru işareti tam olarak bir bilinmeyen karakter anlamına gelirken, yıldız işareti sıfır veya daha fazla bilinmeyen karakter anlamına gelir. Örnekler:

Sorgu | Ortaya çıkan belgeler şunları içerir...
--- | ---
`luc?` | `lucy`, `luca`, ...
`luc*` | `luc`, `lucy`, `luck`, `lucene`, ...
`*ene*` | `lucene`, `energy`, `generator`, ...

Not: Bir kelimenin ilk karakteri olarak joker karakterler kullanılırsa, arama ortalama olarak daha yavaş olma eğilimindedir. Bu, dizinin nasıl yapılandırıldığına bağlıdır: Sanki birinin telefon numarasını aramaya çalışmışsınızdır ve yalnızca o kişinin adını biliyorsunuzdur. Dolayısıyla, yukarıdaki örnekte, `*ene*` araması muhtemelen diğer aramalardan daha yavaş olacaktır çünkü `*ene*` bir joker karakterle başlar.

## Bulanık Aramalar

Bulanık aramalar, belirli bir kelimeye benzer kelimeleri aramanıza olanak tanır. Örneğin, `roam~` ararsanız, DocFetcher `foam` ve `roams` gibi kelimeleri içeren dokümanları bulacaktır.

Ek olarak, 0 ile 1 arasında bir benzerlik eşiği ekleyebilirsiniz, şöyle ki: `roam~0.8`. Eşik ne kadar yüksekse, dönen eşleşmelerin benzerliği o kadar yüksek olur. Eşiği dışarıda bırakmak, varsayılan değer olan 0,5'i kullanmakla aynıdır.

## Yakınlık Aramaları

Yakınlık aramaları, birbirinden belirli bir mesafede bulunan kelimeleri bulmanızı sağlar. Yakınlık araması yapmak için, bir cümlenin sonuna bir tilde (`'~'`) ve ardından bir mesafe değeri koyun. — Bunun sözdizimsel olarak bulanık aramalara benzer olduğunu unutmayın. Örneğin, 10 kelime içinde `wikipedia` ve `lucene` içeren dokümanları aramak için şunu yazın: `"wikipedia lucene"~10`

## Artan Koşullar

Sözcüklere özel ağırlıklar atayarak sonuçların alaka düzeyini etkileyebilirsiniz. Örnek: Yalnızca `köpek kedi` yerine `köpek^4 kedi` girerseniz, `köpek` içeren belgeler daha yüksek bir puan alır ve bu nedenle sonuçların en üstüne yaklaşır.

Arttırma faktörünün pozitif olması gerekmesine rağmen, 1'den az olabilir (ör. 0,2). Yükseltme faktörü belirtilmezse, varsayılan değer 1 kullanılır.

## Alan Aramaları

Varsayılan olarak DocFetcher, ayıklayabildiği tüm metin verilerini, yani belgelerin içeriğini, dosya adlarını ve meta verilerini arayacaktır. Bununla birlikte, aramalarınızı dosya adı ve/veya belirli meta veri alanlarıyla da sınırlayabilirsiniz. Örneğin, başlıkları `wikipedia` içeren dokümanları aramak için şunu girin: `title:wikipedia`. Bu, kelime öbeği aramasıyla birleştirilebilir, ör. `title:"köpek kedi"` veya parantez içinde, ör. `title:(köpek kedi)`. Aslında, tırnak işaretlerini ve parantezleri atlarsanız, başlıkla `kedi` değil, yalnızca `köpek` eşleşir.

Hangi alanların kullanılabilir olduğu genellikle belge biçimine bağlıdır, ancak bunu pratik bir kural olarak kullanabilirsiniz:

- Dosyalar: filename, title, author
- E-postalar: subject, sender, recipients

## Aralık Aramaları

DocFetcher, sözlükbilimsel olarak iki kelime arasında olan kelimelerin aranmasına izin verir. Örneğin, `beta` kelimesi `alpha` ve `gamma` arasında yer alır. Bu nedenle, `alpha` ve `gamma` arasındaki kelimeleri içeren tüm belgeleri listelemek istiyorsanız, şunu yazın: `[alpha TO gamma]`.

Köşeli parantez kullanıldığında, aralık sorgusu kapsayıcıdır, yani sonuçlara `alpha` ve `gamma` dahildir. Özel aralık araması yapmak için, bunun yerine süslü parantez kullanın: `{alpha TO gamma}`

Aralık aramalarını ve alan aramalarını şu şekilde birleştirebilirsiniz: `title:{alpha TO gamma}`.Bu, aralık aramasını başlık alanıyla sınırlayacaktır.