Giriş
XenForo Enhanced Search (XFES)'i Elasticsearch ile kullanıyorsanız, Similar Threads widget'inin etkin ve doğru yapılandırılmış olmasına rağmen görünmediği bir durumla karşılaşabilirsiniz.Bu sorun basit bir yanlış yapılandırmadan kaynaklanmaz. Genellikle XenForo ile Elasticsearch'in nasıl etkileştiğiyle, özellikle indexleme ve cache üretimiyle ilgilidir.
Bu rehber gerçek kök nedeni, kesin düzeltmeyi ve bunun tek seferlik bir sorun mu yoksa süregelen bakım gerektiren bir şey mi olduğunu açıklar.
Problem Belirtileri
- Similar Threads widget etkin ama görünmüyor.
- Widget sadece bazı thread'lerde görünüyor.
- Çoğu thread benzer içerik göstermiyor.
- XFES yüklü ve Elasticsearch çalışıyor ama sonuçlar boş.
Kök Neden
Çekirdek sorun basit: Elasticsearch indeksi boş veya düzgün doldurulmamış.XFES MySQL kullanarak benzer thread'ler üretmez. Tamamen Elasticsearch'e şu sorgu üzerinden dayanır:
Code:
moreLikeThis()
İndeks boşsa benzerlik verisi üretilemez, cache boş kalır ve widget çıktı vermez.
Ayrıca XenForo benzer thread sonuçlarını şu tabloda saklar:
Code:
xf_es_thread_similar
Neden Oldu?
Bu sorun birkaç yaygın durumda olur. XFES içerik var olduktan sonra yüklenmiş olabilir. Arama indeksi hiç yeniden inşa edilmemiş olabilir. Cron job'ları çalışmıyor olabilir. Elasticsearch authentication düzgün indekslemeyi engellemiş olabilir.Adım Adım Düzeltme
Adım 1: Arama İndeksini Yeniden İnşa Et
Code:
php cmd.php xf-rebuild:search
Adım 2: Similar Thread Cache'ini Yeniden İnşa İçin İşaretle
Code:
UPDATE xf_es_thread_similar SET pending_rebuild = 1;
Adım 3: Similar Threads Job'unu Kuyrukla
Code:
INSERT INTO xf_job (unique_key, execute_class, execute_data, manual_execute, trigger_date)
VALUES ('xfesSimilarThreads', 'XFES:SimilarThreads', 'a:0:{}', 0, UNIX_TIMESTAMP())
ON DUPLICATE KEY UPDATE trigger_date = UNIX_TIMESTAMP();
Adım 4: XenForo Job'larını Çalıştır
Code:
php cmd.php xf:run-jobs --max-execution-time=0
Adım 5: Master Data'yı Yeniden İnşa Et
Code:
php cmd.php xf:rebuild-master-data
Adım 6: Elasticsearch İndeksini Doğrula
Code:
curl -k -u USERNAME:PASSWORD https://localhost:9200/YOUR_INDEX/_count
Adım 7: Similar Thread Cache'i Doğrula
Code:
SELECT thread_id, similar_thread_ids
FROM xf_es_thread_similar
WHERE thread_id = 79;
Tek Seferlik Düzeltme mi?
Cevap çoğu durumda evet, ama her zaman değil. XFES yakın zamanda yüklendiyse veya indeks hiç inşa edilmediyse, bu genelde tek seferlik onarımdır.Ancak Elasticsearch yeniden yüklenirse, indeks silinirse, sunucu migrate edilirse, authentication değiştirilirse veya XenForo arka plan job'ları durduğunda aynı sorun dönebilir.
Gelecek Güncellemeler Aynı Manuel Düzeltmeyi Gerektirir mi?
Normalde hayır. Her şey doğru yapılandırıldığında XenForo ve XFES bunu otomatik ele almalı.Önerilen Otomasyon
Gelecek sorunlardan kaçınmak için XenForo job'larının cron üzerinden düzenli çalıştığından emin olun.
Code:
* * * * * php /home/USERNAME/public_html/cmd.php xf:run-jobs
Sonuç
XenForo'da Similar Threads sorunu genellikle bozuk widget veya tema değil. Eksik Elasticsearch verisi, inşa edilmemiş arama indeksi veya boş benzerlik cache kayıtlarından kaynaklanır. Arama indeksi yeniden inşa edildiğinde, cache yenilendiğinde ve XenForo job'ları doğru çalıştığında sistem beklenildiği gibi çalışır.Introduction
If you are using XenForo Enhanced Search (XFES) with Elasticsearch, you may encounter a situation where the Similar Threads widget does not appear, even though it is enabled and configured correctly.Problem Symptoms
- Similar Threads widget is enabled but not visible.
- Widget appears only on some threads.
- Most threads show no similar content.
- XFES is installed and Elasticsearch is running, but results are empty.
Root Cause
The core issue is simple: the Elasticsearch index is empty or not properly populated.XFES relies entirely on Elasticsearch through
Code:
moreLikeThis()
XenForo stores similar thread results in
Code:
xf_es_thread_similar
Why Did This Happen?
XFES may have been installed after content already existed. The search index may never have been rebuilt. Cron jobs may not have been running.Step by Step Fix
Step 1: Rebuild the Search Index
Code:
php cmd.php xf-rebuild:search
Step 2: Mark Similar Thread Cache for Rebuild
Code:
UPDATE xf_es_thread_similar SET pending_rebuild = 1;
Step 3: Queue the Similar Threads Job
Code:
INSERT INTO xf_job (unique_key, execute_class, execute_data, manual_execute, trigger_date)
VALUES ('xfesSimilarThreads', 'XFES:SimilarThreads', 'a:0:{}', 0, UNIX_TIMESTAMP())
ON DUPLICATE KEY UPDATE trigger_date = UNIX_TIMESTAMP();
Step 4: Run the XenForo Jobs
Code:
php cmd.php xf:run-jobs --max-execution-time=0
Step 5: Rebuild Master Data
Code:
php cmd.php xf:rebuild-master-data
Step 6: Verify the Elasticsearch Index
Code:
curl -k -u USERNAME:PASSWORD https://localhost:9200/YOUR_INDEX/_count
Step 7: Verify Similar Thread Cache
Code:
SELECT thread_id, similar_thread_ids
FROM xf_es_thread_similar
WHERE thread_id = 79;
Is This a One Time Fix?
Usually yes, but the same problem can return if Elasticsearch is reinstalled, the index is deleted, the server is migrated, or background jobs stop running.Recommended Automation
Code:
* * * * * php /home/USERNAME/public_html/cmd.php xf:run-jobs