<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[TNF : Tatter Network Foundation forum - 검색 키워드문제]]></title>
	<link rel="self" href="http://forum.tattersite.com/ko/extern.php?action=feed&amp;tid=5800&amp;type=atom"/>
	<updated>2008-06-15T02:13:39Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.tattersite.com/ko/viewtopic.php?id=5800</id>
		<entry>
			<title type="html"><![CDATA[RSS 답글: 검색 키워드문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=28103#p28103"/>
			<content type="html"><![CDATA[<p>안녕하세요.</p><p>댓글에 감사드리구요. <br />한국어의 특징 중 하나가 조합어라고 말씀하셨는데 옳은 말씀입니다.<br />그래서 저도 기사에 썼듯이 검색어 입력을 다음과 같이 하였습니다.<br />&nbsp; &nbsp; &nbsp; 홍길동 영화 &quot;멋있는 사람&quot; 싸이트<br />&quot;멋있는 사람&quot;은 인용부호로 막아주었기때문에 그 안의 공백은 구분기호로 인식안하거든요.<br />인용부호안의 단어는 그냥 조합어로 찾는거죠.</p><p>구글검색싸이트에서도 다 그렇게 하잖아요.<br />꼭 되리라 기대하면서..<br />화이팅!!!</p>]]></content>
			<author>
				<name><![CDATA[로즈]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=2918</uri>
			</author>
			<updated>2008-06-15T02:13:39Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=28103#p28103</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: 검색 키워드문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=27954#p27954"/>
			<content type="html"><![CDATA[<p>얘는 쪼금 고려를 해서 반영을 해야 할 것 같습니다.^^</p><p>한국어의 특징 중 하나가 조합어가 많다는 점인데, 그러한 단어들에 대한 띄어쓰기가 항상 일정하지가 않습니다. 그래서 실질적으로는 하나의 단어로 쓰이지만 띄어쓰는 경우가 많으므로 띄어쓰기를 단어 구분으로 인식하면 검색범위가 너무 넓어지는 문제가 자주 발생하게 됩니다.</p><p>AND 등의 검색어 명령 도입을 생각해 보는 방법도 있을 것 같네요. 관심 있으신 분들께서는 이 글의 댓글들을 통해서 함께 의견을 나누어 보았으면 합니다.^^</p>]]></content>
			<author>
				<name><![CDATA[inureyes]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=2</uri>
			</author>
			<updated>2008-06-12T06:43:56Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=27954#p27954</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[검색 키워드문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=27923#p27923"/>
			<content type="html"><![CDATA[<p>안녕하세요...</p><p>텍스트큐브 1.7에는 기사검색창이 있습니다.<br />그 검색창에 &quot;홍길동 영화&quot;라고 입력하고 검색을 하면 기사제목과 기사본문에서 &quot;홍길동 영화&quot;가 들어간것만 찾아냅니다.<br />&quot;홍길동&quot;도 들어가고 &quot;영화&quot;도 들어간 기사는 찾지 못하죠.</p><p>나름대로 소스를 분석해보고 고쳐보았습니다.<br />lib\model\blog.entry.php파일이예요.</p><p>우선. 파일에 다음의 두개 함수를 추가하고요..</p><p>function GetFractionWord($text)<br />{<br />&nbsp; &nbsp; $ret = array();</p><p>&nbsp; &nbsp; if (strlen($text) == 0)<br />&nbsp; &nbsp; &nbsp; &nbsp; return $ret;</p><p>&nbsp; &nbsp; $start = 0;<br />&nbsp; &nbsp; $cur = -1;<br />&nbsp; &nbsp; $idx = 0;<br />&nbsp; &nbsp; $idx1= 0;<br />&nbsp; &nbsp; $idx2 = 0;</p><p>&nbsp; &nbsp; $text = str_replace(&quot;\\\\&quot;, &quot;\\&quot;, $text);<br />&nbsp; &nbsp; $text = str_replace(&quot;\\\&quot;&quot;, &quot;\&quot;&quot;, $text);<br />&nbsp; &nbsp; $text = str_replace(&quot;\\&#039;&quot;, &quot;&#039;&quot;, $text);</p><p>&nbsp; &nbsp; $text = &quot; &quot; . $text . &quot; &quot;;</p><p>&nbsp; &nbsp; while($start &lt; strlen($text) - 1)<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $idx = strpos($text, &quot; \&quot;&quot;, $start);</p><p>&nbsp; &nbsp; &nbsp; &nbsp; if ($idx === false)<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AddArrayStringItem($ret, substr($text, $start));<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // pre text<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($idx &gt; $start)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AddArrayStringItem($ret, substr($text, $start, $idx - $start + 1));<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $start = $idx;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $idx = strpos($text, &quot;\&quot; &quot;, $start + 3);</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($idx === false)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AddArrayStringItem($ret, substr($text, $start));<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ret[] = substr($text, $start + 2, $idx - ($start + 2));<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $start = $idx + 2;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }</p><p>&nbsp; &nbsp; }</p><p>&nbsp; &nbsp; return $ret;<br />}</p><p>function AddArrayStringItem(&amp;$arrlist, $text)<br />{<br />&nbsp; &nbsp; $n = strpos($text, &quot; &quot;);</p><p>&nbsp; &nbsp; while(!($n === false))<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ($n &gt; 0)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $arrlist[] = substr($text, 0, $n);<br />&nbsp; &nbsp; &nbsp; &nbsp; $text = substr($text, $n+1);<br />&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; $n = strpos($text, &quot; &quot;);<br />&nbsp; &nbsp; }</p><p>&nbsp; &nbsp; if (strlen($text) &gt; 0)<br />&nbsp; &nbsp; &nbsp; &nbsp; $arrlist[] = $text;<br />}</p><p>다음으로. getEntryListWithPagingBySearch함수와 getEntriesWithPagingBySearch함수에 있는 SQL검색조건을 다음과 같이 변경시킵니다.<br />&nbsp; &nbsp; &nbsp; 원래소스:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$cond = strlen($search) == 0 ? &#039;AND 0&#039; : &quot;AND (e.title LIKE &#039;%$search%&#039; OR e.content LIKE &#039;%$search%&#039;)&quot;;</p><p>&nbsp; &nbsp; &nbsp; 수정한 소스:<br />&nbsp; &nbsp; $arrSearch = GetFractionWord($search);<br />&nbsp; &nbsp; if (count($arrSearch) == 0)<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $cond = &#039;AND 0&#039;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $cond = &#039;&#039;;<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ($arrSearch as $s) <br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $cond .= &quot; AND (e.title LIKE &#039;%$s%&#039; OR e.content LIKE &#039;%$s%&#039;)&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }</p><p>우와 같이 수정하면 검색창에 <br />&nbsp; &nbsp; &nbsp;홍길동 영화 &quot;멋있는 사람&quot; 싸이트<br />라고 입력하면 <br />&nbsp; &nbsp; &nbsp;홍길동, 영화, 멋있는 사람, 싸이트<br />가 들어있는 모든 기사가 검색됩니다.</p><p>공백으로 구분만 해주면 되니 정말 쓸모있겠죠.<br />텍스트큐브의 다음 버젼에서 갱신되기를 바라면서...</p><p>화이팅!!!</p>]]></content>
			<author>
				<name><![CDATA[로즈]]></name>
			</author>
			<updated>2008-06-11T15:59:51Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=27923#p27923</id>
		</entry>
</feed>
