ููู ูู ูุฐู ุงูุญููู ูู ููู ูุฏููุง ู ุง ุฃุญุชุงุฌู:
- ุงูุชุซุจูุช ุงูู ุฑูุฒู
- ูุชุงุฆุฌ ุงูุจุญุซ ู ุน ู ุฑุงุนุงุฉ ุญููู ุงููุตูู
- ุงูุจุญุซ ุนู ุทุฑูู ู ุญุชูู ุงููุซููุฉ
- ุนูู ุงูุชุดูู ุงูู ูุฑููููุฌูุง
ููุฑุฑุช ุฃู ุฃุตูุน ุฎุงุตุชู.
ุณูู ุฃูุตุญ ููุทุฉ ุชูู ุงูุฃุฎุฑู ุนู ุง ูุฏู ูู ุงููู ูุฐุฌ ูุชุฌูุจ ุงูุงุฎุชูุงู ูู ุงูุชูุณูุฑ ูุณูุก ุงูููู .
ุงูุชุซุจูุช ุงูู ุฑูุฒู - ุชูููุฐ ุฎุงุฏู ุงูุนู ูู. ุชุญุชูู ุฌู ูุน ุงูุญููู ุงูู ุฐููุฑุฉ ุฃุนูุงู ุนูู ู ุดููุฉ ุฃุณุงุณูุฉ ูุงุญุฏุฉ - ูููู ูู ู ุณุชุฎุฏู ุจุนู ู ููุฑุณ ุจุญุซ ู ุญูู ุฎุงุต ุจู ุ ูุงูุฐู ุ ูู ุญุงูุฉ ุฃุญุฌุงู ุงูุชุฎุฒูู ุงููุจูุฑุฉ ุ ูุคุฎุฑ ุงูููุฑุณุฉ ุ ูููู ู ู ูู ุชุนุฑูู ุงูู ุณุชุฎุฏู ุนูู ุงูุฌูุงุฒ ุ ููููู ุจุดูู ุนุงู ุบูุฑ ู ุฑูุญ ูู ุญุงูุฉ ูุตูู ู ูุธู ุฌุฏูุฏ ุฃู ุงูุงูุชูุงู ุฅูู ุฌูุงุฒ ุฌุฏูุฏ.
ูุชุงุฆุฌ ุงูุจุญุซ ู ุน ู ุฑุงุนุงุฉ ุงูุญููู - ูู ุดูุก ุจุณูุท ููุง - ูุฌุจ ุฃู ุชุชูุงูู ุงููุชุงุฆุฌ ู ุน ุญููู ุงูู ูุธู ูู ู ูุฑุฏ ุงูู ูู. ุฎูุงู ุฐูู ุ ุงุชุถุญ ุฃูู ุญุชู ูู ูู ููู ููู ูุธู ุญููู ูู ุงูู ูุฑุฏ ุ ูู ููู ูุฑุงุกุฉ ูู ุดูุก ู ู ุฐุงูุฑุฉ ุงูุชุฎุฒูู ุงูู ุคูุช ููุจุญุซ. ุณูู ูุชุญูู ุฅูู ู ุญุฑุฌ ุ ุชูุงููุ ุงุจุญุซ ุจู ุญุชูู ุงูู ุณุชูุฏ - ุงุจุญุซ ุจูุต ุงูู ุณุชูุฏ ุ ูู ุดูุก ูุงุถุญ ููุง ุ ูู ุง ูุจุฏู ูู ุ ููุง ูู ูู ุฃู ูููู ููุงู ุชูุงูุถุงุช.
ุนูู ุงูุตุฑู ูู ุฃุจุณุท. ู ุญุฏุฏ ูู ุทูุจ ุงูุจุญุซ "ุณููู" ูุญุตู ุนูู ูู ู ู "ุณููู" ู "ุณูุงููู" ู "ุณููู" ู "ุณููู". ู ู ุงูู ุณุชุญุณู ููุฐุง ุงูุนู ู ุจุงููุบุชูู ุงูุฑูุณูุฉ ูุงูุฅูุฌููุฒูุฉ.
ููุฏ ูุฑุฑูุง ุตูุงุบุฉ ุงูู ุดููุฉ ุ ูู ูููุง ุงูู ุถู ูุฏู ูุง ูู ุงูุชูููุฐ.
ูู ุญุฑู ุจุญุซ ุ ุงุฎุชุฑุช ูุธุงู Sphinx ุ ููุงูุช ูุบุฉ ุชุทููุฑ ุงููุงุฌูุฉ ูู C # ู. net ุ ููุชูุฌุฉ ูุฐูู ุชู ุชุณู ูุฉ ุงูู ุดุฑูุน Vidocq (Vidocq) ุนูู ุงุณู ุงูู ุฎุจุฑ ุงููุฑูุณู. ุญุณููุง ุ ู ุซู ุ ูุฌุฏ ูู ุดูุก ููุฐุง ูู ุดูุก.
ู ู ุงููุงุญูุฉ ุงูู ุนู ุงุฑูุฉ ุ ูุจุฏู ุงูุชุทุจูู ูู ุง ููู: ูููู
ุฑูุจูุช ุงูุจุญุซ ุจุงูุฒุญู ุจุดูู ู ุชูุฑุฑ ุฅูู ู ูุฑุฏ ู ูู ููุนุงูุฌ ุงูู ููุงุช ููููุง ููุงุฆู ุฉ ู ุนููุฉ ู ู ุงูุงู ุชุฏุงุฏุงุช. ุชุชู ุซู ุงูู ุนุงูุฌุฉ ูู ุงุณุชุฑุฏุงุฏ ู ุญุชููุงุช ุงูู ูู ุ ูุถุบุท ุงููุต - ุชุชู ุฅุฒุงูุฉ ุนูุงู ุงุช ุงูุงูุชุจุงุณ ุ ูุงูููุงุตู ุ ูุงูู ุณุงูุงุช ุงูุฒุงุฆุฏุฉ ุ ูู ุง ุฅูู ุฐูู ู ู ุงููุต ุ ุซู ูุชู ูุถุน ุงูู ุญุชูู ูู ูุงุนุฏุฉ ุงูุจูุงูุงุช (MS SQL) ุ ููุชู ุชุญุฏูุฏ ุชุงุฑูุฎ ุงูุชูุณูุจ ููุชุญุฑู ุงูุฑูุจูุช.
ูุนู ู ู ููุฑุณ Sphins ู ุจุงุดุฑุฉ ู ุน ุงููุงุนุฏุฉ ุงูู ุณุชูู ุฉ ุ ููุดูู ููุฑุณูุง ุฎุงุตูุง ุจู ููุนูุฏ ุงูู ุคุดุฑ ุฅูู ุงูู ูู ุงูู ูุฌูุฏ ูู ูุชุทููุง ู ู ุฌุฒุก ุงููุต ุงูู ูุฌูุฏ ูุฑุฏ ูุนู.
ุชู ุชุทููุฑ ูู ูุฐุฌ ูู C # ูุชูุงุตู ู ุน ุฃุจู ุงูููู ู ู ุฎูุงู ู ูุตู MySQL. ูุนุทู Sphinx ู ุฌู ูุนุฉ ู ู ุงูู ููุงุช ููููุง ููุทูุจ ุ ุซู ูุชู ุชุตููุฉ ุงูู ุตูููุฉ ูุญู ูุตูู ุงูู ุณุชุฎุฏู ุงูุฐู ูุจุญุซ ุ ููุชู ุชูุณูู ุงูุฅุฎุฑุงุฌ ูุนุฑุถู ููู ุณุชุฎุฏู .
ูุญุชุงุฌ ุฅูู ุชุฎุฒูู ุงูู ุนููู ุงุช ุงูุชุงููุฉ ุญูู ุงูู ูู:
- ู ุนุฑู ุงูู ูู
- ุงุณู ุงูู ูู
- ู ุณุงุฑ ุงูู ูู
- ู ุญุชููุงุช ุงูู ูู
- ุชูุณูุน
- ุชู ุช ุฅุถุงูุฉ ุงูุชุงุฑูุฎ ุฅูู ูุงุนุฏุฉ ุงูุจูุงูุงุช
ูุชู ูู ุฐูู ูู ุฌุฏูู ูุงุญุฏ ูุณูุถูู ุฑูุจูุช ุงูุจุญุซ ูู ุดูุก ุฅููู. ูุนุฏ ุชุงุฑูุฎ ุงูุฅุถุงูุฉ ุถุฑูุฑููุง ุญุชู ุนูุฏู ุง ููุงุฑู ุงูุฑูุจูุช ูู ุงูุฌููุฉ ุงูุชุงููุฉ ุชุงุฑูุฎ ุชุนุฏูู ุงูู ูู ู ุน ุชุงุฑูุฎ ูุถุนู ูู ูุงุนุฏุฉ ุงูุจูุงูุงุช ุ ูุฅุฐุง ุงุฎุชููุช ุงูุชูุงุฑูุฎ ุ ููู ุจุชุญุฏูุซ ุงูู ุนููู ุงุช ุญูู ุงูู ูู.
ุซู ูู ุจุฅุนุฏุงุฏ ู ุญุฑู ุงูุจุญุซ ููุณู. ูู ุฃุตู ุงูุชูููู ุจุงููุงู ู ุ ุณูููู ู ุชุงุญูุง ูู ุฃุฑุดูู ุงูู ุดุฑูุน ุ ููููู ุณุฃุบุทู ููุท ุงูููุงุท ุงูุฑุฆูุณูุฉ.
ุงูุทูุจ ุงูุฑุฆูุณู ุงูุฐู ูุดูู ูุงุนุฏุฉ
ุงูู ุณุชูุฏุงุช ุงูู ุตุฏุฑ: documents_base
{
sql_query = \
select \
DocumentId as 'Id', \
DocumentPath as 'Path', \
DocumentTitle as 'Title', \
DocumentExtention as 'Extension', \
DocumentContent as 'Content' \
from \
VidocqDocs
}
ุฅุนุฏุงุฏ ู ูุฑููููุฌูุง ู ู ุฎูุงู lemmatizer.
index documents
{
source = documents
path = D:/work/VidocqSearcher/Sphinx/data/index
morphology = lemmatize_ru_all, lemmatize_en_all
}
ุจุนุฏ ุฐูู ุ ูู ููู ุถุจุท ุงูู ููุฑุณ ุนูู ุงููุงุนุฏุฉ ูุงูุชุญูู ู ู ุงูุนู ู.
d:\work\VidocqSearcher\Sphinx\bin\indexer.exe documents --config D:\work\VidocqSearcher\Sphinx\bin\main.conf โrotate
ููุง ูุชุจุน ุงูู ุณุงุฑ ุฅูู ุงูู ููุฑุณ ุงุณู ุงูููุฑุณ ุงูุฐู ูุชู ูุถุน ุงูู ุคุดุฑ ุงูู ุนุงูุฌ ููู ุ ููุนูู ุงูู ุณุงุฑ ุฅูู ุงูุชูููู ูุนูุงู ุฉ ุงูุฏูุฑุงู ุฃู ุงูููุฑุณุฉ ุณุชุชู ุนูู ุฑุจุญ ุ ุฃู ู ุน ุชุดุบูู ุฎุฏู ุฉ ุงูุจุญุซ. ุจุนุฏ ุงูุชู ุงู ุงูููุฑุณุฉ ุ ุณูุชู ุงุณุชุจุฏุงู ุงูููุฑุณ ุจุงูููุฑุณ ุงูู ุญุฏุซ.
ูุชุญูู ู ู ุงูุนู ู ูู ูุญุฏุฉ ุงูุชุญูู . ููุงุฌูุฉ ุ ูู ููู ุงุณุชุฎุฏุงู ุนู ูู MySQL ุงูู ุฃุฎูุฐ ุ ุนูู ุณุจูู ุงูู ุซุงู ุ ู ู ู ุฌู ูุนุฉ ุฎุงุฏู ุงูููุจ.
mysql -h 127.0.0.1 -P 9306
ุจุนุฏ ูุฐุง ุงูุทูุจ ุญุฏุฏ ู ุนุฑู ู ู ุงููุซุงุฆู. ูุฌุจ ุฃู ุชุนูุฏ ูุงุฆู ุฉ ุจุงููุซุงุฆู ุงูู ููุฑุณุฉ ุ ุฅุฐุง ุ ุจุงูุทุจุน ุ ุจุฏุฃุช ุฎุฏู ุฉ Sphinx ููุณูุง ููุนูุช ูู ุดูุก ุจุดูู ุตุญูุญ.
ุญุณููุง ุ ูุญุฏุฉ ุงูุชุญูู ุฑุงุฆุนุฉ ุ ููููุง ูู ูุฌุจุฑ ุงูู ุณุชุฎุฏู ูู ุนูู ูุชุงุจุฉ ุงูุฃูุงู ุฑ ุ ุฃููุณ ูุฐููุ
ููุฏ ุฑุณู ุช ูู ูุฐุฌูุง ู ุซู ูุฐุง
ูููุง ู ุน ูุชุงุฆุฌ ุงูุจุญุซ
ุนูุฏ ุงูููุฑ ููู ูุชูุฌุฉ ู ุนููุฉ ุ ูุชู ูุชุญ ู ุณุชูุฏ.
ููู ูุชู ุชูููุฐู.
using MySql.Data.MySqlClient;
string connectionString = "Server=127.0.0.1;Port=9306";
var query = "select id, title, extension, path, snippet(content, '" + textBoxSearch.Text.Trim() + "', 'query_mode=1') as snippet from documents " +
"where ";
if (checkBoxTitle.IsChecked == true && checkBoxContent.IsChecked == true)
{
query += "match ('@(title,content)" + textBoxSearch.Text.Trim() + "')";
}
if (checkBoxTitle.IsChecked == false && checkBoxContent.IsChecked == true)
{
query += "match ('@content" + textBoxSearch.Text.Trim() + "')";
}
if (checkBoxTitle.IsChecked == true && checkBoxContent.IsChecked == false)
{
query += "match ('@title" + textBoxSearch.Text.Trim() + "')";
}
if (checkBoxWord.IsChecked == true && checkBoxText.IsChecked == true)
{
query += "and extension in ('.docx', '.doc', '.txt');";
}
if (checkBoxWord.IsChecked == true && checkBoxText.IsChecked == false)
{
query += "and extension in ('.docx', '.doc');";
}
if (checkBoxWord.IsChecked == false && checkBoxText.IsChecked == true)
{
query += "and extension in ('.txt');";
}
ูุนู ุ ููุฌุฏ ููุฏ bydloc ุ ููู ูุฐุง ูู MVP.
ูู ุงููุงูุน ุ ูุชู ููุง ุชุดููู ุทูุจ ุฅูู ุฃุจู ุงูููู ุ ุงุนุชู ุงุฏูุง ุนูู ู ุฑุจุนุงุช ุงูุงุฎุชูุงุฑ ุงูู ุญุฏุฏุฉ. ุชุดูุฑ ู ุฑุจุนุงุช ุงูุงุฎุชูุงุฑ ุฅูู ููุน ุงูู ููุงุช ุงูู ุฑุงุฏ ุงูุจุญุซ ูููุง ูู ูุทูุฉ ุงูุจุญุซ.
ุซู ูุฐูุจ ุงูุทูุจ ุฅูู ุฃุจู ุงูููู ุ ุซู ูุชู ุชุญููู ุงููุชูุฌุฉ.
using (var command = new MySqlCommand(query, connection))
{
connection.Open();
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
var id = reader.GetUInt16("id");
var title = reader.GetString("title");
var path = reader.GetString("path");
var extension = reader.GetString("extension");
var snippet = reader.GetString("snippet");
bool isFileExist = File.Exists(path);
if (isFileExist == true)
{
System.Windows.Controls.RichTextBox textBlock = new RichTextBox();
textBlock.IsReadOnly = true;
string xName = "id" + id.ToString();
textBlock.Name = xName;
textBlock.Tag = path;
textBlock.GotFocus += new System.Windows.RoutedEventHandler(ShowClickHello);
snippet = System.Text.RegularExpressions.Regex.Replace(snippet, "<.*?>", String.Empty);
Paragraph paragraph = new Paragraph();
paragraph.Inlines.Add(new Bold(new Run(path + "\r\n")));
paragraph.Inlines.Add(new Run(snippet));
textBlock.Document = new FlowDocument(paragraph);
StackPanelResult.Children.Add(textBlock);
}
else
{
counteraccess--;
}
}
}
}
ูู ููุณ ุงูู ุฑุญูุฉ ุ ูุชู ุฅูุดุงุก ุงูู ุดููุฉ. ูู ุนูุตุฑ ู ู ุนูุงุตุฑ ุงูู ุดููุฉ ุนุจุงุฑุฉ ุนู ู ุฑุจุน ูุต ู ูุณู ุจู ุญุฏุซ ููุชุญ ู ุณุชูุฏ ุนูุฏ ุงูููุฑ. ูุชู ูุถุน ุงูุนูุงุตุฑ ุนูู StackPanel ููุจู ุฐูู ูุชู ูุญุต ุงูู ูู ููู ุณุชุฎุฏู . ูุจุงูุชุงูู ุ ูู ูุชู ุชุถู ูู ุงูู ูู ุงูุฐู ูุชุนุฐุฑ ุนูู ุงูู ุณุชุฎุฏู ุงููุตูู ุฅููู ูู ุงูุฅุฎุฑุงุฌ.
ู ุฒุงูุง ูุฐุง ุงูุญู:
- ุชุชู ุงูููุฑุณุฉ ู ุฑูุฒููุง
- ุนุฑุถ ุฏููู ุนูู ุฃุณุงุณ ุญููู ุงููุตูู
- ุจุญุซ ูุงุจู ููุชุฎุตูุต ุญุณุจ ููุน ุงููุซููุฉ
ุจุงูุทุจุน ุ ู ู ุฃุฌู ุงูุชุดุบูู ุงููุงู ู ูู ุซู ูุฐุง ุงูุญู ุ ูุฌุจ ุชูุธูู ุฃุฑุดูู ุงูู ูู ุจุดูู ุตุญูุญ ูู ุงูุดุฑูุฉ. ู ู ุงููุงุญูุฉ ุงูู ุซุงููุฉ ุ ูุฌุจ ุชูููู ู ููุงุช ุชุนุฑูู ุงูู ุณุชุฎุฏู ูู ุงูู ุชุฌููุฉ ูู ุง ุฅูู ุฐูู. ููุนู ุ ุฃุนุฑู ุดูุฆูุง ุนู SharePoint ู Windows Search ูุนูู ุงูุฃุฑุฌุญ ุจุนุถ ุงูุญููู ุงูุฃุฎุฑู. ุซู ูู ููู ู ูุงูุดุฉ ุงุฎุชูุงุฑ ู ูุตุฉ ุงูุชุทููุฑ ุ ุฃู ู ุญุฑู ุจุญุซ Sphinx ุ ุฃู Manticore ุฃู Elastic ุ ูู ุง ุฅูู ุฐูู. ููููู ููุช ู ูุชู ูุง ุจุญู ุงูู ุดููุฉ ุจุงุณุชุฎุฏุงู ุงูุฃุฏูุงุช ุงูุชู ุฃููู ูุง ููููุงู. ุฅูู ูุนู ู ุญุงูููุง ูู ูุถุน MVP ุ ูููู ุฃููู ุจุชุทููุฑู.
ููู ุนูู ุฃู ุญุงู ุ ุฃูุง ู ุณุชุนุฏ ููุงุณุชู ุงุน ุฅูู ุงูุชุฑุงุญุงุชูู ุญูู ุงูููุงุท ุงูุชู ูู ูู ุชุญุณูููุง ุฃู ุฅุนุงุฏุฉ ุจูุงุฆูุง ูู ู ูุฏูุง.