当搜索要求模糊和通配符搜索时,太阳能失败

时间:2016-02-12 06:59:49

标签: regex apache search solr autosuggest

我需要什么

  • 我需要使用暗示搜索来构建像亚马逊和其他e-com网站一样的搜索。

  • 我尝试过wilcard搜索,就像q = string ;但是,当错误的单词表示plnts时,我无法搜索,bcs仅适用于0,1形式。

  • 当我使用模糊搜索q =“string~1”时,它会在plant->写入plnts时给出结果,但是在搜索关键词zer for fertilizer时失败。

  • 我使用了建议者,但它没有满足搜索要求链接:http://wiki.apache.org/solr/Suggester

  • 我正在奋斗3天才能获得解决方案。

  • 我用Google搜索了发现链接:https://gist.github.com/dalegaspi/20b7db4ef2d4d55be661知识分子使用的类型js。

  • 我用过的代码

        function startSolrSearch ()
        {
        var srchval = $("#productSearch").val().trim();
        if (srchval.length >= 1){
        srchval = srchval.replace(/'|"/g,"").replace(/ /g,"*+*");
    
        srchval = srchval.replace(/ /g,"+AND+");
            console.log(srchval);
        srchval = "*"+srchval+"*";
    
    
        for(var i = 0; i < solrPendingRequests.length; i++){
        solrPendingRequests[i].abort();
        }
        console.log(srchval);
        solrPendingRequests.push($.ajax({
        type : "GET",
        url : solrbasepath + "solr/afeef/select?q="+srchval+'~'+1+"&facet=true&facet.field=title&facet.field=keywords&facet.field=category&indent=on&qt=spellchecker&wt=json&hl=true&hl.fl=title+keywords+model_name&hl.simple.pre=<b>&hl.simple.post=<%2Fb>&hl.usePhraseHighlighter=true&hl.highlightMultiTerm=true&hl.snippets=1&start=0&rows=100",
        dataType : 'JSONP',
        cache : false,
        jsonp: 'json.wrf',
        success : function(html) {
    
        getSearchData (html);
    
        }
        }));
        } 
        else {
    
    
        $('#searchsuggestion .linkresults').html('');
        $('#searchsuggestion').hide();
        $('.close_search').hide();
        }
    

    url

      http://www.supplified.com:8983/solr/vikas/select?q=zer~1 OR q="*zer*" &ind   nt=on&q.op=AND&facet=true&facet.field=title&facet.field=keywords&debugQuery=on&qt=spellchecker&wt=json&hl=true&hl.fl=title+keywords+model_name&hl.simple.pre=%3Cb%3E&hl.simple.post=%3C%2Fb%3E&hl.usePhraseHighlighter=true&hl.highlightMultiTerm=true&hl.snippets=1&start=0&rows=10&json.wrf=jQuery111205813984868582338_1454571708911&_=1454571708913
    
  • 我需要建议如何在e-com网站上使用像亚马逊这样的暗示搜索。

1 个答案:

答案 0 :(得分:0)

最好使用solr拼写检查组件来更好地控制它。 spellcheck提供了一系列设置,您可以根据自己的使用情况对其进行配置。

为什么模糊查询在搜索关键词zer for fertilizer时不起作用?请参考此文档进行模糊搜索。

Fuzzy searches documentation

Lucene支持基于Levenshtein距离或编辑距离算法的模糊搜索。要进行模糊搜索,请在单个单词Term的末尾使用波浪号“〜”符号。例如,要搜索拼写为“漫游”的术语,请使用模糊搜索: 漫游〜 此搜索将找到像泡沫和漫游这样的术语。 从Lucene 1.9开始,附加(可选)参数可以指定所需的相似性。该值介于0和1之间,值接近1,仅匹配具有更高相似度的项。例如: 漫游〜0.8 如果未给出参数,则使用的默认值为0.5。

你已经提到匹配的相似度值= 1,因此它没有返回结果。我认为在相似性参数中使用较小的值可以解决您的问题(尝试0到1之间的值,看看它是如何工作的。)