2013-10-30 38 views
0

我目前正在將JavaScript框架AJAX Solr集成到我的域中。我試圖查詢「博士」或「程序」等單詞,但控制檯僅報告「*:*」僅爲默認通配符。AJAX Solr返回默認通配符*:*而不是我查詢

路透社例子(/ajax-solr/examples/reuters/index.html),使每個鍍鉻控制檯創建兩個Ajax請求:

   Resource interpreted as Script but transferred with MIME type text/plain: "http://evolvingweb.ca/solr/reuters/select?facet=true&q=*%3A*&facet.field=to…&wt=json&json.wrf=jQuery17206055877613835037_1383157992399&_=1383157992504". 

       Resource interpreted as Script but transferred with MIME type text/plain: "http://evolvingweb.ca/solr/reuters/select?rows=0&facet=true&facet.limit=-1&…&wt=json&json.wrf=jQuery17206055877613835037_1383157992400&_=1383157992844". 

雖然我只看到這一點:

   Resource interpreted as Script but transferred with MIME type text/plain: "http://localhost:8983/solr/rockies/select?q=*%3A*&wt=json&json.wrf=jQuery17107057890424039215_1383158110410&_=1383158110688". 

我的HTML如下:

   <form action="/search.htm" id="search-form"> 
         <ul id="search"> 
         <input type="text" id="query" name="query" autocomplete="off"> 
         </ul>  
       </form> 

在這個構造下,查詢會報告到搜索結果(search.htm)。

此外,我只使用尋呼機和結果小部件,並已將小部件(如TagcloudWidget,CurrentSearchWidget,AutocompleteWidget,CountryCodeWidget和CalendarWidget)註釋掉。

以下是我已經包括全球(假設的jQuery 1.7.1是依賴):

   <link rel="stylesheet" href="css/search.css"> 
       <script src="js/search.js"></script> 
       <script src="js/Core.js"></script> 
       <script src="js/AbstractManager.js"></script> 
       <script src="js/Manager.jquery.js"></script> 
       <script src="js/Parameter.js"></script> 
       <script src="js/ParameterStore.js"></script> 
       <script src="js/AbstractWidget.js"></script> 
       <script src="js/ResultWidget.js"></script> 
       <script src="js/PagerWidget.js"></script> 

所有的JS文件合併成一個 'JS' 文件夾。可根據要求提供色漿。

我已通過SOLR的UI(即http:// localhost:8983/solr /#/ rockies/query)確認JSON可以返回除通配符(即'博士'或'程序')之外的不同結果。

我的環境和應用程序版本如下:

  • AJAX Solr的
  • Nutch的1.7
  • Solr的4.5
  • MAC OSX(10.8.5)
  • Java版本「1.6.0_51 「

solr.log文件當前報告this

建議,將不勝感激。

+0

這應該解決。請參閱[pastebin](http://pastebin.com/GyC4RMva) – markreyes

+0

僅供稍後介紹的任何人使用,「資源解釋爲腳本」部分不一定是壞事,與查詢錯誤是分開的。 –

回答

0

來自Ajax-solr項目的路透社例子將基於Facet組件的所有查詢。對於Solr的小部件參數的鍵名是「FQ」所以,如果你申請了一個名爲「類別」字段一個小的搜索,你會發現這樣的事情http://YourSolrServer.com/select?param1&param2&paramN&FQ =類別:mySearchString & Q = *:*

因此,真正發生在路透社Solr例子中的是,他們正在使用參數'fq'在facet組件上應用濾波器,而根本不修改'q'參數,只是說.. q = *:*給我所有..因爲我會按'fq'過濾。

如果您需要在字段上應用搜索而不使用使用方面,您必須編寫自定義修改代碼,添加js或jquery函數以讀取您在搜索輸入中的內容。

你可以試試這個

的Html

<input type="text" id="query" name="query" autocomplete="off"> 
<input type="button" onclick="searchThis();" value="Search Now"> 

的js

function searchThis(){ 
    var queryValue = $('#query').val(); 
    Manager.store.addByValue('q', queryValue); 
    Manager.doRequest(); 
} 

PS:我還沒有嘗試的代碼..但你應該很接近這個..

0

是的,我們的方法都很接近。然而,我所做的是將變量(在您的案例queryValue中)烘焙到我的reuters.js文件(也就是search.js)中。唯一的區別是,我將window.location對象的值與輸入字段的值相提並論。我的更改在pastebin上,確實可行,http://pastebin.com/GyC4RMva

輸入標籤上不需要內聯JavaScript。

相關問題