Проблема с группировкой Apache Solr nGram

#solr

#solr

Вопрос:

у меня возникла проблема при группировании моих ngrams. мой запрос

 http://localhost:8983/solr/archiveCore/select?group.field=strSOamp;group=trueamp;q=strSO:*amp;rows=2147483647amp;start=0amp;wt=jsonamp;indent=trueamp;fl=strSO
  

он показывает правильные результаты для меня в веб-браузере (Chrome), например

 {
  "responseHeader":{
    "status":0,
    "QTime":51,
    "params":{
      "q":"strSO:*",
      "indent":"true",
      "fl":"strSO",
      "start":"0",
      "rows":"2147483647",
      "wt":"json",
      "group.field":"strSO",
      "group":"true"}},
  "grouped":{
    "strSO":{
      "matches":112559,
      "groups":[{
          "groupValue":"EV11777-01",
          "doclist":{"numFound":53,"start":0,"docs":[
              {
                "strSO":"EV11777-01"}]
          }},
        {
          "groupValue":"EV15872-01",
          "doclist":{"numFound":1829,"start":0,"docs":[
              {
                "strSO":"EV15872-01"}]
          }},
        {
          "groupValue":"EV16143-02",
          "doclist":{"numFound":929,"start":0,"docs":[
              {
                "strSO":"EV16143-02"}]
          }},
        {
          "groupValue":"E896759-01",
          "doclist":{"numFound":888,"start":0,"docs":[
              {
                "strSO":"E896759-01"}]
          }},
        {
          "groupValue":"E893257-02",
          "doclist":{"numFound":1250,"start":0,"docs":[
              {
                "strSO":"E893257-02"}]
          }},
        {
          "groupValue":"EV16232-02",
          "doclist":{"numFound":999,"start":0,"docs":[
              {
                "strSO":"EV16232-02"}]
          }},
        {
          "groupValue":"EV12473-01",
          "doclist":{"numFound":1545,"start":0,"docs":[
              {
                "strSO":"EV12473-01"}]
          }},
        {
          "groupValue":"E896479-01",
          "doclist":{"numFound":1016,"start":0,"docs":[
              {
                "strSO":"E896479-01"}]
          }},
        {
          "groupValue":"EV12455-02",
          "doclist":{"numFound":1299,"start":0,"docs":[
              {
                "strSO":"EV12455-02"}]
          }},
        {
          "groupValue":"EV12459-02",
          "doclist":{"numFound":1250,"start":0,"docs":[
              {
                "strSO":"EV12459-02"}]
          }},
        {
          "groupValue":"E876243-01",
          "doclist":{"numFound":1238,"start":0,"docs":[
              {
                "strSO":"E876243-01"}]
          }},
        {
          "groupValue":"E874707-02",
          "doclist":{"numFound":1116,"start":0,"docs":[
              {
                "strSO":"E874707-02"}]
          }},
        {
          "groupValue":"EV12648-02",
          "doclist":{"numFound":1025,"start":0,"docs":[
              {
                "strSO":"EV12648-02"}]
  

но это не работает на java. я помещаю запрос в jquery моих проектов, и ngram ничего не показывает. я не понимаю, почему он мне ничего не показывает. он хорошо работает в веб-браузере.

вот мой schema.xml для настройки ngrams

 <fieldType name="text_ngram" class="solr.TextField" positionIncrementGap="100" stored="false" multiValued="true">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" maxGramSize="20"/>    
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.EdgeNGramTokenizerFactory" minGramSize="2" maxGramSize="20"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
  

Кто-нибудь может помочь мне исправить это??

вот мои коды jquery

 <script>
$(function() {
var URL_PREFIX = "http://localhost:8983/solr/archiveCore/select?q=strSO:*";
var URL_SUFFIX = "amp;group.field=strSOamp;group=trueamp;rows=2147483647amp;start=0amp;wt=jsonamp;indent=trueamp;fl=strSO";
$("#searchBoxstrSO").autocomplete({
source : function(request, response) {
var URL = URL_PREFIX   $("#searchBoxstrSO").val()   URL_SUFFIX;
$.ajax({
url : URL,
success : function(data) {
var docs = JSON.stringify(data.response.docs);
var jsonData = JSON.parse(docs);
response($.map(jsonData, function(value, key) {
return {
label : value.strSO
}
}));
},
dataType : 'jsonp',
jsonp : 'json.wrf'
});
},
minLength : 1
})
});
$(function() {
var URL_PREFIX = "http://localhost:8983/solr/archiveCore/select?q=strSO:";
var URL_MIDDLE = "OR strSO_ngram:";
var URL_SUFFIX = "amp;group.field=strSOamp;group=trueamp;rows=2147483647amp;start=0amp;wt=jsonamp;indent=trueamp;fl=strSO";
$("#ngramBoxstrSO").autocomplete(
{
source : function(request, response) {
var searchString = """   $("#ngramBoxstrSO").val()   """;
var URL = URL_PREFIX   searchString   URL_MIDDLE
  searchString   URL_SUFFIX;
$.ajax({
url : URL,
success : function(data) {
var docs = JSON.stringify(data.response.docs);
var jsonData = JSON.parse(docs);
response($.map(jsonData, function(value, key) {
return {
label : value.strSO
}
}));
},
dataType : 'jsonp',
jsonp : 'json.wrf'
});
},
minLength : 1
})
});
</script>
  

Комментарии:

1. Разрешено ли вашему запросу jQuery вообще связываться с вашим сервером Solr? Обычно межсайтовые запросы завершаются ошибкой, если они выполняются не на том же хосте, который обслуживал исходный HTML.

2. Запрос, обращающийся к моему серверу Solr. будет ли мой запрос solr таким localhost:8983/solr/archiveCore /select? q= strSO:amp;wt= json ngram показывает мне результаты, но результаты многозначны. я хочу различать их, как в SQL