|  | @@ -28,7 +28,7 @@ segment.useDefault();
 | 
	
		
			
				|  |  |  let nodejieba = require('../../dict/jieba');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  let nameWeightMap ={ 
 | 
	
		
			
				|  |  | -  '普通':-99
 | 
	
		
			
				|  |  | + // '普通':-99
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -112,6 +112,12 @@ async function getDataByCondition(data,compilation){
 | 
	
		
			
				|  |  |    if (data.code) { 
 | 
	
		
			
				|  |  |      result = await getDataByCode(data.code, data);
 | 
	
		
			
				|  |  |      if (result.totalSize > 0) return result;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    //如果分类编码有结果,但是确没有匹配的条数,说明关键字没匹配上,直接返回没有信息价
 | 
	
		
			
				|  |  | +    if(result.allItems > 0 && result.totalSize === 0){
 | 
	
		
			
				|  |  | +      return result;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |   
 | 
	
		
			
				|  |  |    //编号匹配不上的情况:
 | 
	
	
		
			
				|  | @@ -153,14 +159,19 @@ async function getDataByCode(code, data) {
 | 
	
		
			
				|  |  |        if(item.name.indexOf(data.keyWord) != -1) items.push(item) //有完全匹配的,就不用编码下的返回所有数据了
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  //没有完全匹配的,返回所有
 | 
	
		
			
				|  |  | -  if (items.length === 0) items = allItems;
 | 
	
		
			
				|  |  | +  //没有完全匹配的,分词匹配关键字
 | 
	
		
			
				|  |  | +  if (items.length === 0){
 | 
	
		
			
				|  |  | +    let nameArray =  nodejieba.cut(data.keyWord);
 | 
	
		
			
				|  |  | +    nameArray = cusSegment(nameArray,data.keyWord);
 | 
	
		
			
				|  |  | +    let result = getMatchPrice(allItems,nameArray);
 | 
	
		
			
				|  |  | +    items = result.items;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    let totalSize = items.length;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    //新需求结束 --------- 
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  return {totalSize,items}
 | 
	
		
			
				|  |  | +  return {totalSize,items,allItems}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -176,8 +187,10 @@ async function getDataByKeyWord(keyword, data) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //按全关键字匹配
 | 
	
		
			
				|  |  |  async function getDataByFullKeyWord(keyword, data){
 | 
	
		
			
				|  |  | -  data.condition.name = new RegExp(keyword);
 | 
	
		
			
				|  |  | -  let items = await infoItemsModel.find(data.condition).lean().sort({"_id":1});
 | 
	
		
			
				|  |  | +  let items = [];  
 | 
	
		
			
				|  |  | +  data.condition.name =  new RegExp(keyword);
 | 
	
		
			
				|  |  | +  items = await infoItemsModel.find(data.condition).lean().sort({"_id":1});
 | 
	
		
			
				|  |  | + 
 | 
	
		
			
				|  |  |    delete data.condition.name;
 | 
	
		
			
				|  |  |    return{totalSize:items.length,items}
 | 
	
		
			
				|  |  |  }
 |