1. 程式人生 > >solr 搜尋時加空格沒有結果

solr 搜尋時加空格沒有結果

使用SOLR搜尋時候常會出現以下問題,比如搜尋“茶油” 可以搜尋到結果,但是 茶和油之間加個空格就沒有結果了

首先你要了解產生這個原因的原理。

schema.xml

<defaultSearchField>name</defaultSearchField>

solrconfig.xml

<requestHandlername="/select"class="solr.SearchHandler"><lstname="defaults"><strname="echoParams">explicit</str><int
name="rows">10</int><strname="df">text</str></lst></requestHandler>

schema.xml中defaultSearchField和solrconfig.xml中df屬性都是預設搜尋欄位的意思,不過後者只針對"/select"請求。優先順序是solrconfig.xml的df高於schema.xml的defaultSearchField

設定預設搜尋欄位的效果:搜尋條件為 title:隨意 問,中間的空格預設相當於OR,"text"優先於"name",因此搜尋條件等價於 title:隨意 OR text:問

,所以會搜尋不出結果。

建議解決方法:

方法1:可以將搜尋條件變為 title:(隨意 問),等價於 title:隨意 OR title:問。 

方法 2:搜尋條件不變,查詢時URL加上df引數"&df=title",也可以解決。

方法3:把

<strname="df">text</str>
改為你要預設的查詢欄位比如改為name  搜尋"茶 油"的時候 及類似魚 name="茶" or  name="油"

相關推薦

solr 搜尋空格沒有結果

使用SOLR搜尋時候常會出現以下問題,比如搜尋“茶油” 可以搜尋到結果,但是 茶和油之間加個空格就沒有結果了 首先你要了解產生這個原因的原理。 schema.xml <defaultSearchField>name</defaultSearchFie

shell 腳本中 空格的註意問題:= 賦值兩邊不能有空格,而if比較判斷 = 兩邊必須空格

花括號 判斷 建議 閱讀 i+1 字符 變量 中間 必須 shell腳本對空格有嚴格的規定,賦值語句等號兩邊不能有空格,而字符串比較,等號兩邊必須有空格 賦值時: i=1     i=$((i+1)) // =用作賦值時,兩邊絕對不

Solr搜尋結果說明

在admin頁面,輸入相關內容後,會返回xml格式的內容。說明如下: <?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader">

solr搜尋結果按某欄位排序

如果想要搜尋結果按某一field排序, 而相同的field情況下匹配度高的優先 1) 使用sort 可見使用sort排序只滿足將section=3的排在前面, 但是同樣都是section為3的不符合按相似度排序 2) 應該對排序欄位加權才是正解

jdbc 呼叫 sql server 的儲存過程“該語句沒有返回結果集”的解決方法

在JDBC中呼叫SQL Server中的儲存過程時出現如下異常:  com.microsoft.sqlserver.jdbc.SQLServerException: 該語句沒有返回結果集。            at com.microsoft.sqlserver

textbox在js取值去掉空格

out 輸入 lac nat textbox text bsp ace order <asp:TextBox ID="TextBox1" runat="server" Style="outline: none; height: 20px; width: 170px;

java的單例設計模式(對象的延載)考試專用

clas pac ack 延時加載 專用 public get private static java的單例設計模式(對象的延時加載) ,稱為:懶漢式 考試專用例:package day6;public class Single2 { //考試專用 ,對象的延時加

js調用函數括號與不括號的區別

調用函數 執行 查看 return 區別 代碼 調用 dem 部分 函數名其實就是指向函數體的指針 不加括號, 可以認為是查看該函數的完整信息, 不加括號傳參,相當於傳入函數整體 加括號 表示立即調用(執行)這個函數裏面的代碼(花括號部分的代碼) 例2: functio

awk -F選項同時指定多個符號做為分割符遇到空格坑,題目:請執行命令取出 linux 中 eth0 的 IP 地址

取出linux中eth0的ip地址 awk空格遇坑 老男孩第三關課前考試題的第三個筆試題第三關課前考試題:3.請執行命令取出 linux 中 eth0 的 IP 地址(請用 cut,有能力者也可分別用 awk,sed 命令答)因為以前有個題講過awk -F選項可以指定輸入分割符,也可以同時使用多個符號作為分割

db first執行說model沒有key

tor schema tostring sha imp 方法 dmp this 自動 原因:自動生成的類中有關聯主鍵,沒有自動生成Key及Column 解決方法:在xxx.tt的66行左右修改為 var simpleProperties = typeMapper.G

TP 手機列表頁下拉沒有分頁

tp ajax加載 不分頁Controller類創建方法public function ajaxindex($p,$cid){ $articlecate=M(‘articlecate‘); $article=M(‘article‘); $listR

SpringMvc 系統啟動載數據到內存中

struts service als tps ice gte auto pack style SpringMvc 系統啟動時加載數據到內存中 學習了:http://blog.csdn.net/newstruts/article/details/18668269 https:

Framework7學習筆記之 無限滾動(滾動到底部載新內容)

blog distance tin work detach lastindex init div lock 一:為頁面添加無限滾動控件 在可滾動的容器上(一般為page-content)添加“infinite-scroll”類;在頁面底部定義 加載指示器。 &

列表內怎麽沒有顯示的字段值

列表// 插件內加載需要的字段信息(如果前臺過濾界面沒選擇的字段可以在此增加);/// </summary>/// <param name="e"></param>public override void PrepareFilterParameter(K

聯表查詢始終以小結果集驅動大結果

blog inner sta 寫在前面 既然 sort 說過 convert 都是 寫在前面的話 不要求每個人一定理解 聯表查詢(join/left join/inner join等)時的mysql運算過程; 不要求每個人一定知道線上(現在或未來)哪張表數據量大,哪張表數據

使用Telnet服務測試端口,提示沒有Telnet服務

控制面板 圖片 端口 沒有 tel img 開啟 rpc image 1.win7系統是默認不開啟Telnet服務的,所以我們第一次使用時要手動開啟Telnet服務 1)打開 控制面板 > 程序 > 程序功能 > 打開或關閉Windows功能,勾選上Tel

象“[]”、“.”、“->”這類操作符前後不空格

loop “.” names 打開 style ace The 取字符 sys 象“[]”、“.”、“->”這類操作符前後不加空格。 1 #include <iostream> 2 #include <process.h> 3 #i

(地址運算符)等前後不 空格

The fclose could 輸入 exiting program pan int 一個 一元操作符如“!”、 “~”、“++”、“--”、“&”(地址運算符)等前後不 加空格。 1 #include <iostream> 2 #inclu

解決Vue 使用vue-router切換頁面 頁面顯示沒有在頂部的問題

col https 解決辦法 項目 spa .net style main sdn 有時候我們需要頁面滾動條滾動到某一固定的位置,一般使用Window scrollTo() 方法。 語法就是:scrollTo(xpos,ypos) xpos:必需。要在窗口文檔顯示區左上

commonJs的運行載和es6的編譯

bsp log www. nbsp .com targe logs 編譯 mon 參考 : https://www.cnblogs.com/jerrypig/p/8145206.html 1、commonJs的運行時加載 2、ES6編譯時加載commonJs的運行