라이브러리

[PHP] SolrDisMaxQuery::useEDisMaxQueryParser - QueryParser를 EDisMax로 전환




SolrDisMaxQuery와 eDisMaxQueryParser


SolrDisMaxQuery는 Apache Solr에서 제공하는 쿼리 파서 중 하나입니다. 이 파서를 사용하면 Solr에서 제공하는 다양한 쿼리 옵션을 사용할 수 있습니다. eDisMaxQueryParser는 SolrDisMaxQuery의 파서 중 하나로, DisMaxQuery와 EdismaxQuery를 결합한 파서입니다.

eDisMaxQueryParser 사용하기


eDisMaxQueryParser를 사용하려면 SolrDisMaxQuery의 useEDisMaxQueryParser() 메소드를 호출하면 됩니다.

#hostingforum.kr
php

use SolariumQueryTypeQueryQueryInterface;

use SolariumQueryTypeQueryFilterQueryDisMaxQuery;



$query = new DisMaxQuery();

$query->setQuery('키워드');

$query->useEDisMaxQueryParser();



eDisMaxQueryParser 옵션


eDisMaxQueryParser에서 사용할 수 있는 옵션은 다음과 같습니다.

* `qf` : 필드별 가중치 옵션
* `pf` : 필드별 가중치 옵션
* `bq` : 보조 쿼리 옵션
* `fq` : 필터 쿼리 옵션
* `mm` : 최소 매칭 문서 수 옵션
* `mlt` : 관련 문서 옵션
* `mlt.fl` : 관련 문서 필드 옵션
* `mlt.mintf` : 관련 문서 최소 단어 수 옵션
* `mlt.mindf` : 관련 문서 최소 문서 수 옵션
* `mlt.maxdocs` : 관련 문서 최대 문서 수 옵션

#hostingforum.kr
php

use SolariumQueryTypeQueryQueryInterface;

use SolariumQueryTypeQueryFilterQueryDisMaxQuery;



$query = new DisMaxQuery();

$query->setQuery('키워드');

$query->useEDisMaxQueryParser();



// 필드별 가중치 옵션

$query->setQf('title^2.0 title^1.0 content^0.5');



// 보조 쿼리 옵션

$query->setBq('title:키워드');



// 필터 쿼리 옵션

$query->setFq('category:카테고리');



// 최소 매칭 문서 수 옵션

$query->setMm(2);



// 관련 문서 옵션

$query->setMlt(true);

$query->setMltFl('title');

$query->setMltMintf(2);

$query->setMltMindf(2);

$query->setMltMaxdocs(10);



예제


#hostingforum.kr
php

use SolariumClient;

use SolariumQueryTypeQueryQueryInterface;

use SolariumQueryTypeQueryFilterQueryDisMaxQuery;



// Solr 클라이언트 생성

$client = new Client('http://localhost:8983/solr');



// 쿼리 생성

$query = new DisMaxQuery();

$query->setQuery('키워드');

$query->useEDisMaxQueryParser();



// 필드별 가중치 옵션

$query->setQf('title^2.0 title^1.0 content^0.5');



// 보조 쿼리 옵션

$query->setBq('title:키워드');



// 필터 쿼리 옵션

$query->setFq('category:카테고리');



// 최소 매칭 문서 수 옵션

$query->setMm(2);



// 관련 문서 옵션

$query->setMlt(true);

$query->setMltFl('title');

$query->setMltMintf(2);

$query->setMltMindf(2);

$query->setMltMaxdocs(10);



// 쿼리 실행

$result = $client->query($query);



// 결과 출력

print_r($result);



이 예제는 SolrDisMaxQuery를 사용하여 쿼리를 실행하고, 결과를 출력합니다. eDisMaxQueryParser를 사용하여 필드별 가중치 옵션, 보조 쿼리 옵션, 필터 쿼리 옵션, 최소 매칭 문서 수 옵션, 관련 문서 옵션을 설정합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 167 페이지

검색

게시물 검색