webForumDet fria alternativet

Sökmotor sträng

.NET

3 svar · 465 visningar · startad av tronez

Medlem sedan juli 2001728 inlägg
Frågan#1

Hej, sitter och sliter mitt hår här. Skulle behöva lite hjälp med lite tänk.

Det är så att jag har en databas med en massa artiklar i och har en aspx sida med en sökruta på. Vad jag nu vill är att det man skriver i sökrutan ska göras om till något liknande

blå båt "i skärgården" kapsejsade

Ska bli

"blå båt" AND "i skärgården" AND "kapsejsade"

Dvs. är inte första tecknet ett " , lägg till det. När nästa " kommer så är nästa ord i en ny mening. Lägg även till AND emellan.

Har ju klart för mig hur det ska funka, men får inte ner det i kod. Nån som kan ge mig en känga i rätt riktning?

Medlem sedan mars 20007 896 inlägg
#2
string s = "blå båt \"i skärgården\" kapsejsade";
string[] arr = s.Split('"');
StringBuilder sb = new StringBuilder();

for(int i = 0; i < arr.Length; i++) {
     sb.Append("'" + arr[i].Trim() + "'");
     if(i != (arr.Length - 1))
          sb.Append(" AND ");
}

?

Redigerat, läste inte så noga. ;)

Medlem sedan juli 2001728 inlägg
#3

Det funkade bra, men jag har tänkt om lite. Jag vill även kunna sätta in tex

blå båt "i skärgården" OR "blå båt" kapsejsade
det feta ska kunna vara OR / NEAR / AND osv

Funderar på om man kan dela upp strängen ord för ord, sen kolla om ordet är "OR, NEAR eller AND". är föregående ord OR, NEAR eller AND lägg inte till AND - annars lägg till AND.

Men jag får inte till det, det blir oändligt med IF-satser

Nån annan idé om hur man kan lösa detta på bästa sätt?

Medlem sedan okt. 20041 556 inlägg
#4

Join?

253 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)