2つの問題が1つの質問にまとめられています。
haystack auto_queryが2つのリクエストをsolrに送信し、:文字をエスケープするのはなぜですか?
マニュアルに記載されているとおりにhaystackを設定しましたが、すべて正常に実行されていますが、solrログを調整するたびに、haystackからのリクエスト(1つのクエリ)と管理ページからのリクエストが1つ表示されます。
だから私はクエリします:
title:ong
Haystackから次のようになります。
Jul 12, 2012 2:37:30 PM org.apache.solr.core.SolrCore execute
INFO: [collection1] webapp=/solr path=/select/ params={spellcheck=true&sort=cand+desc&fl=*+score&start=0&q=(title\:ong)&spellcheck.count=1&spellcheck.collate=true&wt=json&fq=django_ct:(ads.model1+OR+ads.model2+OR+ads.model3)&rows=1} hits=0 status=0 QTime=21
Jul 12, 2012 2:37:30 PM org.apache.solr.core.SolrCore execute
INFO: [collection1] webapp=/solr path=/select/ params={spellcheck=true&sort=cand+desc&fl=*+score&start=0&q=(title\:ong)&spellcheck.count=1&spellcheck.collate=true&wt=json&fq=django_ct:(ads.model1+OR+ads.model2+OR+ads.model3)&rows=0} hits=0 status=0 QTime=23
管理セクションから:
Jul 12, 2012 2:42:35 PM org.apache.solr.core.SolrCore execute
INFO: [collection1] webapp=/solr path=/select params={spellcheck=true&indent=true&q=title:ong&wt=json} hits=2 status=0 QTime=12
ヘイスタックリクエストには追加のパラメータが存在しますが、これは理解できます。
ご覧のとおり、qパラメーターは同じです。
ほぼ同じです。haystackauto_queryが:文字をエスケープして2つのリクエストを送信する理由は誰でもわかりますか?
:がエスケープされているため、Solrはフィールド「title」から「ong」を返さず、文字列としてtitle \:ongを検索します。もちろん、何も返しません。