PDA

View Full Version : جستجوی یک عبارت در دستور لینک



RIG000
سه شنبه 04 فروردین 1394, 01:48 صبح
باسلام. من یه جستجو میخام انجام بدم که یک عبارت رو برام بگرده نه یک کلمه مثل (
اگر ما در حال حاضر بخایم یه متن مثل (برترین انسانها ) رو به عنوان ورودی بدیم . میخام بره بگرده تو فیلد pagetext و هر عبارتی که توش این کلمات موجود باشه برام بکشه بیرون. ممکنهست تو یه فیلد هر دو کلمه باشه ممکن تو یه فیلد یکی از این کلمات باشه میخام این دوحالت رو برام بکشه بیرون. تو ovrloade دستور Contains نوشته که whatever اما این دستور فقط یک کلمه رو بهش بدی برات میشه بیرون نه دو کلمه یا عبارت...) حالا کد روهم به همین شکل نوشتم

public ActionResult SearchSite(string text)
{
var db = new DandanPezeshki01.Models.DandanPezeshkiEntities();
var query = db.Pages.Where(m => m.PageText.Contains(text)).ToList();
return View(query);




}
اما از یه کلمه میخای جستجو کنی هیچی نمیاره ... :|

Hamid2547
سه شنبه 04 فروردین 1394, 14:55 عصر
این رو امتحان کنید:
var query = db.Pages.Where(m => m.PageText.Contains(text1) || m.PageText.Contains(text2) ).ToList();

یا مثل این مثال:
var db = new[] { "ensan", "ensan bartar", "ensan nemidoonamchichi","something else" };

var query = db.Where(m => m.Contains("ensan") || m.Contains("something")).Select(m => m.ToString());

var meds = (from m in db
where m.Any(n => m.Contains("ensan") || m.Contains("something"))
select m);

foreach (var v in query)
{
Console.WriteLine(v);
}
/*
output:
ensan
ensan bartar
ensan nemidoonamchichi
something else
*/

SabaSabouhi
چهارشنبه 05 فروردین 1394, 09:37 صبح
باسلام. من یه جستجو میخام انجام بدم که یک عبارت رو برام بگرده نه یک کلمه مثل (
اگر ما در حال حاضر بخایم یه متن مثل (برترین انسانها ) رو به عنوان ورودی بدیم . میخام بره بگرده تو فیلد pagetext و هر عبارتی که توش این کلمات موجود باشه برام بکشه بیرون. ممکنهست تو یه فیلد هر دو کلمه باشه ممکن تو یه فیلد یکی از این کلمات باشه میخام این دوحالت رو برام بکشه بیرون. تو ovrloade دستور Contains نوشته که whatever اما این دستور فقط یک کلمه رو بهش بدی برات میشه بیرون نه دو کلمه یا عبارت...) حالا کد روهم به همین شکل نوشتم

public ActionResult SearchSite(string text)
{
var db = new DandanPezeshki01.Models.DandanPezeshkiEntities();
var query = db.Pages.Where(m => m.PageText.Contains(text)).ToList();
return View(query);




}
اما از یه کلمه میخای جستجو کنی هیچی نمیاره ... :|

سلام
من فرض می‌کنم می‌خوای پاسخ‌هایی رو پیدا کنی که تمام عبارت‌ها توشون باشه. بدون توجه به توالی اون‌ها. ( یعنی ممکنه که پشت سر هم نباشن )
1. اول باید با متد Split عبارت جستجو رو تجزیه کن


var searchParts = searchString.Split( ' ' );

2. بعد باید IQueryable مناسب رو تهیه کنی.


var queryable = db.Pages;
searchParts
.ToList()
.ForEach( x=> queryable = queryable.Where( x=> x.PageText.Contains( x ) );

3. حالا باید تبدیلش کنی به IEnumerable با فرمان ToList


var list = queryable.ToList();




به همین سادگی حل می‌شه

صبا صبوحی

Mahmoud.Afrad
پنج شنبه 06 فروردین 1394, 19:08 عصر
string strSearchFor = "برترین انسان";
List<string> lstSearchFor = strSearchFor.Split(' ').Where(item => item != string.Empty).ToList();

Database2Entities1 db = new Database2Entities1();
var query =
db.Tbl.Where(record =>
lstSearchFor.Any(term => record.PageText.Contains(term)));

dataGridView1.DataSource = query;

star_rh
دوشنبه 10 فروردین 1394, 18:09 عصر
بهترین روش استفاده از regex هستش. برای مثال برای جستجوی MVC controller در عبارت زیر به این صورت عمل می کنم.
regex را به این صورت در نظر می گیریم.


/(MVC)|(controller)/igx


عبارت مورد جستجو:
The central component of MVC, the model, captures the behavior of the application in terms of its problem domain, independent of the user interface.[5] The model directly manages the data, logic and rules of the application. A view can be any output representation of information, such as a chart or a diagram; multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants. The third part, the controller, accepts input and converts it to commands for the model or view.
A controller can send commands to the model to update the model's state (e.g., editing a document). It can also send commands to its associated view to change the view's presentation of the model (e.g., by scrolling through a document).

خواهی دید که همه آنها پیدا می شه.
برای تست از لینک زیر استفاده کن
https://regex101.com/